0

我有一个单选按钮组,其中包含单选按钮和带有for属性的关联标签,其中一个标签包含一个文本框。
我现在遇到的问题是,一旦我单击文本框,焦点就会再次被移除。请参阅此处- 尝试选择文本框以输入内容。

我已经在onclickor中尝试了以下内容onfocus

setInterval(function () { $('#TriggerTimeUI').focus(); }, 50)

这似乎可行,但我有一个datetimepicker控制,那就是“杀死”这个逻辑,因为它一直显示(见这里,但这个小提琴只在 Chrome 中有效)......

有人可以帮我弄这个吗?

4

2 回答 2

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);
});

另一个例子小提琴

于 2013-10-10T07:58:43.463 回答
0

您已将输入文本框包装在属于单选按钮的标签标签下。只需在下面开始的标签标签结束,您的问题就会解决

<label for="TriggerMode_custom"></label>
        <input style="width: 230px;" type="Text" id="TriggerTimeUI" /><br />
于 2013-10-10T08:04:51.473 回答