[英]Jquery change event on textbox
Basically, I want to change value on, say textbox2, when the value of textbox1 is changed by a button function. 基本上,当按钮功能更改textbox1的值时,我想更改textbox2的值。 I know that it is possible to include the function on the button to change the value on the textbox2, but I don't want that.
我知道可以在按钮上包含该函数来更改textbox2上的值,但是我不希望那样。 Is it possible?
可能吗?
Here's what I tried so far on JSFiddle https://jsfiddle.net/xpvt214o/387300/ 这是到目前为止我在JSFiddle上尝试过的东西https://jsfiddle.net/xpvt214o/387300/
HTML code: HTML代码:
<button id="button1">button</button>
<input type="text" id="outputtext1" value="1" readonly/>
<input type="text" id="outputtext2" value="" />
JavaScript: JavaScript:
jQuery('#button1').on('click', function() {
document.getElementById("outputtext1").value = parseInt(document.getElementById("outputtext1").value) +1;
});
jQuery('#outputtext1').on('change', function() {
//I know that this logic can be put in onClick function above instead
var number = document.getElementById("outputtext1").value;
if( number <= 3){
document.getElementById("outputtext2").value = "low";
} else if (number < 10){
document.getElementById("outputtext2").value = "medium";
} else if (number >= 10){
document.getElementById("outputtext2").value = "high";
}
});
Thank you in advance! 先感谢您!
You can use jQuery('#outputtext1').trigger("change");
您可以使用
jQuery('#outputtext1').trigger("change");
in the button
element click
event. 在
button
元素click
事件。
Example: 例:
jQuery('#button1').on('click', function() { document.getElementById("outputtext1").value = parseInt(document.getElementById("outputtext1").value) + 1; jQuery('#outputtext1').trigger("change"); }); jQuery('#outputtext1').on('change', function() { var number = document.getElementById("outputtext1").value; if (number <= 3) { document.getElementById("outputtext2").value = "low"; } else if (number < 10) { document.getElementById("outputtext2").value = "medium"; } else if (number >= 10) { document.getElementById("outputtext2").value = "high"; } });
body { background: #20262E; padding: 20px; font-family: Helvetica; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button1">button</button> <input type="text" id="outputtext1" value="1" readonly/> <input type="text" id="outputtext2" value="" />
Try this:Change the value for outputtext1
and fire change event on it 尝试以下操作:更改
outputtext1
的值并在其上触发更改事件
jQuery('#button1').on('click', function() {
var value = jQuery("#outputtext1").val();
value = (parseInt(value) || 0) + 1;
jQuery("#outputtext1").val(value).change();
});
jQuery('#outputtext1').on('change', function() {
var number = (parseInt($(this).val()) || 0) + 1;
if( number <= 3){
jQuery("#outputtext2").val("low");
} else if (number < 10){
jQuery("#outputtext2").val("medium");
} else if (number >= 10){
jQuery("#outputtext2").val("high");
}
});
JSFiddle JSFiddle
NOTE : You can use jQuery id
selector and '.va()` function instead of Javacript as shown in code above. 注意 :可以使用jQuery
id
选择器和'.va()`函数代替Javacript,如上面的代码所示。
You could use $('#outputtext1').trigger("change")
on button click 您可以在按钮单击时使用
$('#outputtext1').trigger("change")
DEMO 演示
$('#button1').on('click', function() { $('#outputtext1').val(+$('#outputtext1').val()+1); $('#outputtext1').trigger("change"); }); $('#outputtext1').on('change', function() { var number = document.getElementById("outputtext1").value; if (number <= 3) { document.getElementById("outputtext2").value = "low"; } else if (number < 10) { document.getElementById("outputtext2").value = "medium"; } else if (number >= 10) { document.getElementById("outputtext2").value = "high"; } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button1">button</button> <input type="text" id="outputtext1" value="1" readonly/> <input type="text" id="outputtext2" value="" />
Either you can trigger the change
event or create a generic function and call it on both click
and change
event. 您可以触发
change
事件或创建通用函数,然后在click
和change
事件上调用它。 Its better to call generic function rather then triggering the event from event. 最好是调用泛型函数,而不是从事件触发事件。
// find elements var banner = $("#banner-message") var button = $("button") $('#button1').on('click', function() { document.getElementById("outputtext1").value = parseInt(document.getElementById("outputtext1").value) + 1; $('#outputtext1').trigger('change'); }); $('#outputtext1').on('change', function() { var number = document.getElementById("outputtext1").value; if (number <= 3) { document.getElementById("outputtext2").value = "low"; } else if (number < 10) { document.getElementById("outputtext2").value = "medium"; } else if (number >= 10) { document.getElementById("outputtext2").value = "high"; } });
body { background: #20262E; padding: 20px; font-family: Helvetica; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button1">button</button> <input type="text" id="outputtext1" value="1" /> <input type="text" id="outputtext2" value="" /> <!-- this should be changed when the value of outputtext1 is changing -->
// find elements var banner = $("#banner-message") var button = $("button") $('#button1').on('click', function() { document.getElementById("outputtext1").value = parseInt(document.getElementById("outputtext1").value) + 1; validateInput(); }); $('#outputtext1').on('change', function() { validateInput(); }); function validateInput() { var number = document.getElementById("outputtext1").value; if (number <= 3) { document.getElementById("outputtext2").value = "low"; } else if (number < 10) { document.getElementById("outputtext2").value = "medium"; } else if (number >= 10) { document.getElementById("outputtext2").value = "high"; } }
body { background: #20262E; padding: 20px; font-family: Helvetica; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button1">button</button> <input type="text" id="outputtext1" value="1" /> <input type="text" id="outputtext2" value="" /> <!-- this should be changed when the value of outputtext1 is changing -->
I am getting the selector attribute value with $('#outputtext1').attr('value') so that it will not break and change the value at runtime[Please check the value in DOM]. 我正在使用$('#outputtext1')。attr('value')获取选择器属性值,以便它不会在运行时中断并更改值[请检查DOM中的值]。 At the same time I am triggering a change event on button click.
同时,我在单击按钮时触发更改事件。
jQuery('#button1').on('click', function() { var x = $('#outputtext1').attr('value'); x = parseInt(x) +1; $('#outputtext1').attr("value", x); jQuery('#outputtext1').trigger("change"); }); jQuery('#outputtext1').on('change', function() { var number = $('#outputtext1').attr('value'); if( number <= 3){ document.getElementById("outputtext2").value = "low"; } else if (number < 10){ document.getElementById("outputtext2").value = "medium"; } else if (number >= 10){ document.getElementById("outputtext2").value = "high"; } });
body { background: #20262E; padding: 20px; font-family: Helvetica; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="button1">button</button> <input type="text" id="outputtext1" value="1" /> <input type="text" id="outputtext2" value="" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.