在页面加载和单击按钮时运行定义的函数

时间:2019-01-17 14:48:27

标签: javascript jquery

我正在尝试在页面加载时设置一些值,效果很好。然后,我有一个按钮,它将在单击时更改值,效果也很好。我遇到了一个问题,即如果再次单击按钮,值将重新更改。我想运行与第一个函数相同的计算,并且试图在单击按钮时调用该函数,但是却收到一个未定义的错误。这是我的代码

$(document).ready( function calcValues() {

$('#valueOne').val('1');
$('#valueTwo').val('0');

$("#quantity").keyup(function(){ 
$('#valueOne').val($('#quantity').val());



            if (document.getElementById('radioOne').checked) {
                    if(document.getElementById('quantity').value <= 9) {            
                  $('#valueOne').val('1');  
                $('#valueThree').val('0');   
                            }       
                    else if(document.getElementById('quantity').value >= 10 
&& (document.getElementById('quantity').value <= 24)) {             
                              $('#valueOne').val('0');  
                  $('#valueThree').val('1');
              }
          else if(document.getElementById('quantity').value >= 25) {
                $('#valueOne').val('0');  
                $('#valueThree').val('2');       
                        }
                }
                  else if(document.getElementById('radioTwo').checked) {
                              $('#valueOne').val($('#quantity').val());
                                $('#valueThree').val('0');
                }


         $('input[type="radio"]').click(function() {
            if($(this).attr('id') == 'radioOne') {  
                 if(document.getElementById('quantity').value <= 9) {
                  $('#valueOne').val('1');  
                $('#valueThree').val('0');   
                            }   

                     else if(document.getElementById('quantity').value >= 10 
&& (document.getElementById('quantity').value <= 24)) {
                  $('#valueOne').val('0');  
                $('#valueThree').val('1');   
                            }
               else if(document.getElementById('quantity').value >= 25) {
                $('#valueOne').val('0');  
                $('#valueThree').val('2');       
                            }
                    }

                    else if($(this).attr('id') == 'radioTwo') {  
                            $('#valueOne').val($('#quantity').val());
              $('#valueThree').val('0'); 

                    }
            })      
    }
)
})


$(document).on('click', '#buttonOne', function() {
         $('#valueThree').val('0'); 
         $('#valueOne').val('0'); 
         $('#valueTwo').val($('#quantity').val()); 
    })
    $("#quantity").keyup(function(){ 
         if(document.getElementById('#valueTwo').value > 0) {
             $('#valueThree').val('0'); 
             $('#valueOne').val('0'); 
             $('#valueTwo').val($('#quantity').val());
    }})



$(document).on('click', '#buttonTwo', function(calcValues) {
})

我在前两个函数中有计算,而在第三个函数中没有计算,因为我只是在尝试调用第一个函数

1 个答案:

答案 0 :(得分:1)

您应该定义函数calcValues并按以下方式调用它:

function calValues() {
// Set values
}

$(document).ready( calcValues)

$(document).on('click', '#button1', function() {
// Change Values
})

$(document).on('click', '#button2', calcValues) 

操作方式,函数calcValues尚未定义,并且无法访问。