只读<input />可防止向不同元素添加值

时间:2016-04-04 10:09:03

标签: jquery jquery-selectors jquery-events

我有一系列<input>元素和一个相应的脚本,可以在输入后自动聚焦下一个框。此外,还有一个readonly元素,纯粹是为用户提供上下文。

readonly元素阻止在#DialFifth中键入值。我试图使用属性选择器来阻止使用readonly拾取元素,但这似乎不起作用。

请参阅摘录 - 任何想法?

&#13;
&#13;
$(':input').keypress(function() {
  $(this).next(':input').focus();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="DialFirst" name="DialFirst" type="text" value="" />
<input id="DialSecond" name="DialSecond" type="text" value="" />
<input id="DialThird" name="DialThird" type="text" value="" />
<input id="DialFourth" name="DialFourth" type="text" value="" />
<input id="DialFifth" name="DialFifth" type="text" value="" /> <!--Unable to type into this box-->
<input id="DialFinal" name="DialFinal" type="text" readonly="readonly" value="0" />
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

问题与更改值和触发事件的顺序有关。要执行您的操作,请改为使用keyup

$(':input').keyup(function() {
    $(this).next(':input').focus();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="DialFirst" name="DialFirst" type="text" value="" />
<input id="DialSecond" name="DialSecond" type="text" value="" />
<input id="DialThird" name="DialThird" type="text" value="" />
<input id="DialFourth" name="DialFourth" type="text" value="" />
<input id="DialFifth" name="DialFifth" type="text" value="" />
<input id="DialFinal" name="DialFinal" type="text" readonly="readonly" value="0" />