при нажатии на текстовое поле внутри div, div onclick java script Fire функции

У меня есть текстовое поле в стороне div, и я использую функцию сценария java onclick, чтобы изменить цвет, когда я нажимаю на div. но проблема в том, почему эта функция onclick срабатывает при нажатии на текстовое поле? есть ли какое-либо решение, чтобы предотвратить этот пожар функции сценария java?

<table>
        @{int i=0;}
        @foreach (var m in Model.JobPostSundayTimeSlotVMList)
        {
           var divId = "SunSlot" + i;
           var checkboxId = "SunIsSelected" + i;
           var bitRate = "SunRate" + i;
           <tr>
               <td>
                   @Html.CheckBox("[" + i + "].SunIsSelected", m.SunIsSelected, new { @id = checkboxId, @hidden = "hidden" })

                    <div id="@divId" onclick = "setSlotColor('@divId','@checkboxId')";>  
                             @Html.TextBox("[" + i + "].SunParttimerBidValue", "", new { @id = bitRate, @class = "form-control", @placeholder = m.SunParttimerBidValue.ToString("C2"), @style = "height:20px"}) 
                    </div>
               </td>
            </tr>
            i++;
      }
</table>
<script>
       function setSlotColor(divId, checkbox) {
       var property = document.getElementById(divId);
       if ($('#' + checkbox).prop('checked')) {
       $('#' + checkbox).prop('checked', false); 
       property.style.backgroundColor = "white"; 
       }
       else
       {
          property.style.backgroundColor = "burlywood";
          $('#' + checkbox).prop('checked', true);
        }
}
</script>

2 ответа

  1. Попробовать это…

    Включите приведенный ниже код в сценарий. Это исключит текстовые поля в div из onClickсобытия

    Если вы замените divселектор идентификатором div или именем класса css div, это будет более конкретным.

    $("div input[type='text']").click(function () {
         e.stopPropagation()
    });