如果任何表单输入更改,如何更改立即提交按钮文本?
//This applies to whole form
$('#test').change(function() {
$("#send").prop("value","Change");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="test">
<input id="Input1" value="Input1" />
<input id="Input2" value="Input2" />
<input type="submit" id="send" value="Send" />
</form>
此处,按钮文字在光标离开输入后更改。
答案 0 :(得分:6)
使用input
事件
使用:input Selector
,选择所有input, textarea, select and button
元素
$('#test').find(':input').on('input', function() {
document.getElementById('send').value = this.value;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form id="test">
<input id="Input1" value="Input1">
<input id="Input2" value="Input2">
<input type="submit" id="send" value="Send">
</form>
答案 1 :(得分:1)
您需要将侦听器放在输入本身上,在这种情况下将其附加到onKeyDown
事件:
$('input').on("keydown", function() {
send.value = "Change";
});
答案 2 :(得分:0)
需要最少更改的解决方案是使用keyup
事件。即。
$('#test').keyup(function() {
send.value = "Change";
});
这样,输入#test
父级中的任何输入字段都将触发该事件。
答案 3 :(得分:0)
您可以使用jquery输入event
和selector
来完成此操作。
$('input').on("keydown", function() {
$('#send').val(this.value);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="test">
<input id="Input1" value="Input1">
<input id="Input2" value="Input2">
<input type="submit" id="send" value="Send">
</form>
&#13;
答案 4 :(得分:0)
由于你原来的问题没有直接提到JQuery,除非它被用作选择器,这个让我挂了一个正确的JavaScript答案。
所以这个答案和其他例子一样,但只使用简单的'JavaScript'。使用input
事件,就像其他答案一样。
document.getElementById('test').addEventListener('input', function(e) {
document.getElementById('send').value = e.target.value;
});
<form id="test">
<input id="Input1" value="Input1">
<input id="Input2" value="Input2">
<input type="submit" id="send" value="Send">
</form>
这里的区别在于它正在正确地监听表单元素上的冒泡事件,只注册一次事件监听器(而不是将相同的事件监听器应用于多个元素),并使用Event.target
属性来计算哪个元素被修改了。