我有一个单选按钮组,其中包含带有for
属性的单选按钮和相关标签,其中一个标签包含一个文本框。
我现在遇到了问题,只要我单击文本框,焦点就会再次被删除。
请参阅HERE - 尝试选择文本框输入内容。
我已经在onclick
或onfocus
:
setInterval(function () { $('#TriggerTimeUI').focus(); }, 50)
这似乎有效,但我在该控件上有一个datetimepicker
,这就是“杀死”这个逻辑,因为它随后一直显示出来(见HERE,但这个小提琴只适用于铬)...
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
问题是因为您将标签的for
属性设置为兄弟元素。这意味着将在属性中指定的元素上引发单击事件,因此为什么焦点会立即从文本框中丢失。删除for
属性,文本框保持焦点:
<input type="radio" name="TriggerMode" id="TriggerMode_custom" value="custom" checked="checked" />
<label> <!-- remove the 'for' here -->
<input style="width: 230px;" type="Text" id="TriggerTimeUI" />
<br />
</label>
如果您需要这样的行为,当有人点击文本框时会选择单选按钮,您需要手动执行此操作:
$('#TriggerTimeUI').focus(function() {
$('#TriggerMode_custom').prop('checked', true);
});
答案 1 :(得分:0)
您已将输入文本框包装在属于单选按钮的label标签下。只需结束下面开始的标签标签,您的问题就会出现
<label for="TriggerMode_custom"></label>
<input style="width: 230px;" type="Text" id="TriggerTimeUI" /><br />