简体   繁体   English

在文本框jQuery的变化事件

[英]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事件或创建通用函数,然后在clickchange事件上调用它。 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 --> 

try this fiddle 试试这个小提琴

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM