1

我在 Checkbox 值中生成一个文本框。但是当我单击文本框以输入内容时,复选框会自动取消选中。

<span id="TRAVEL_TYPE_1"><input id="TRAVEL_TYPE_0" type="checkbox" onclick="UpdateTravelInformations();">
    </input><label for="TRAVEL_TYPE_0">
  TRP1 : Transports en commun 2ème classe, sur justificatifs
  <div id="TRAVEL_TYPE_1_INFORMATION" class="infoChoixFDM" style="display: block;">
     <input id="MONTANTMAX" class="positive-integer" type="text" value="20" maxlength="5" style="width:50px; text-align:center" runat="server"></input>
   €
  </div>
 </label>
</span>

当我在 MONTANTMAX 的点击事件上将检查设置为 false 时,该问题在 Chrome 上得到了部分解决。但是在 IE 和 Firefox 中它不起作用......

$('#MONTANTMAX').click(function () {
    if (!$.browser.msie) {
        $('#TRAVEL_TYPE input').get(0).checked = false;
}

有人能帮我吗 ?

4

2 回答 2

3

您必须<label>在文本的末尾关闭

<span id="TRAVEL_TYPE_1"><input id="TRAVEL_TYPE_0" type="checkbox" onclick="UpdateTravelInformations();">
    </input><label for="TRAVEL_TYPE_0">
  TRP1 : Transports en commun 2ème classe, sur justificatifs</label>
  <div id="TRAVEL_TYPE_1_INFORMATION" class="infoChoixFDM" style="display: block;">
     <input id="MONTANTMAX" class="positive-integer" type="text" value="20" maxlength="5" style="width:50px; text-align:center" runat="server"></input>
   €
  </div>
</span>

否则,输入将被分配为复选框的标签。

更新:JS解决方案

$(function(){
  $('#MONTANTMAX').click(function (e) {
    e.preventDefault();
    $('#TRAVEL_TYPE_0[checked=false]').prop('checked', true);
  });                                             
});
于 2013-04-11T09:49:45.373 回答
0

从外观上看,您的代码有点混乱。

尝试这个:

$('#MONTANTMAX').click(function () {
    $('#TRAVEL_TYPE_0').prop('checked', true);
}
于 2013-04-11T09:47:11.543 回答