Jquery 如果为0,则使用其他字段值填充字段值

Jquery 如果为0,则使用其他字段值填充字段值,jquery,Jquery,如果字段值1为0,我尝试用另一个字段值(值2)填充字段值(值1)。这就是我到目前为止所做的: jQuery(function() { var value1 = $('#input_41_49').val(); var value2 = $('#input_41_77').val(); if (jQuery(value1).val() == 0){ jQuery(value2).val(value1); } }); 当字段值更改时,如何执行此操作?尝试以下操作:在value1和value2中读

如果字段值1为0,我尝试用另一个字段值(值2)填充字段值(值1)。这就是我到目前为止所做的:

jQuery(function() {
var value1 = $('#input_41_49').val();
var value2 = $('#input_41_77').val();

if (jQuery(value1).val() == 0){
jQuery(value2).val(value1);
}
});

当字段值更改时,如何执行此操作?

尝试以下操作:在
value1
value2
中读取值,然后再次调用
.val()
,而不是存储
value1
value2
的jquery对象,然后调用
.val()
。还可以使用
parseInt()
(或
parseFloat()
如果是浮点值)将其与
0
进行比较

jQuery(function() {
   var value1 = $('#input_41_49');
   var value2 = $('#input_41_77');

  if (parseInt(jQuery(value1).val()) == 0){
    jQuery(value2).val(value1);
   }
});

使用太多jQuery,请更改为:

jQuery(function() {
    var value1 = jQuery('#input_41_49');
    var value2 = jQuery('#input_41_77');

    if (parseInt(value1.val(), 10) == 0){
        value1.val(value2.val());
    }
});
对于更改事件,您可以使用:

$("#value2").on("input",function(e){
    var $thisVal = $(this).val(),
        $value1 = $("#value1");
    if( parseInt(value1.val(), 10) == 10 ) {
        value1.val($thisVal);
    }
});

您想使用函数重载
val

var value2 = jQuery('#input_41_77');
$('#input_41_49').val(function(_,prevVal){
    return prevVal == "0" ? value2 : prevVal; 
});
试试这个代码

 jQuery(function() {
    var value1 = $('#input_41_49');
    var value2 = $('#input_41_77');

    if ($.trim(value1.val()) == 0){
      value2.val(value1);
    } 
});

获取并比较Value1更改时的值:

$('#input_41_49').change(function() {
        var value1 = $('#input_41_49').val();
        var value2 = $('#input_41_77').val();

        if (value1 == 0){
         $('#input_41_47').val(value2);
        } 
    });
小提琴

以下代码不起作用

  • 如果input1为空,则使用input2更改input1的值
  • 如果input1是手动编辑的,并且input1包含一些值,则input2的更改不会反映在input1中

    // assign the initial value1 var to value of input1
    var init_value1 = $('#value1').val();
    
    // if input 2 value changes: listen to input2 for cut, paste, keyup and change event 
    $('#value2').on('cut paste keyup change', function(){
        // if input1 initial value is empty assign input1 value to input2 value
         if(init_value1=== ''){
            $('#value1').val($('#value2').val());
         }
    });
    
    // if input1 value changes: in case input1 is edited, listen to cut, paste, keyup, change
    $('#value1').on('cut paste keyup change', function(){
        // assign input1 value to initial value1 variable
        init_value1 = $('#value1').val();
    });
    

Ok,所以我使用的是:jQuery(function(){var value1=jQuery('#input_41_49');var value2=jQuery('#input_41_77');if(parseInt(value1.val(),10)==0){value1.val(value2.val())});但不起作用,如何使用更改事件,因此如果值1=0,则更改为值2?绑定到更改事件-请参阅上面的答案。@sideroxylon您可以在('input'…)事件上使用来检查更改事件,在我补充的回答中,你能解释一下为什么这个代码回答这个问题吗?你能解释一下为什么这个代码回答这个问题吗?不鼓励只使用代码的答案,因为它们不会教授解决方案。