2012-02-17 19 views
0

我有一個奇怪的問題與我的一個頁面上的複選框。基本上我有一些jQuery(下面)分配給它,所以當它被點擊時,下面的字段填充了與上面相同的信息(與結算信息相同的東西)然而,當這個jQuery被分配給它時,tick不能填寫複選框。當複選框已分配給它的jQuery,勾不再起作用

我已經嘗試了各種方法來獲取複選框手動勾選但無濟於事,誰能解釋一下這個問題?

$('#sameasbilling').toggle(function() { 

    //assign value of billing firstname text input to variable 'firstname' 
    var firstname = $('input[name=billingfirstnames]').val(); 

    //insert value of 'firstname' into delivery text input 
    $('input[name=deliveryfirstnames]').val(firstname); 

    $('#sameasbilling').attr("checked", checked); 

},function() { 
    $('input[name=deliveryfirstnames]').val(""); 
}); 

我試過的jQuery(加上這兩行的許多變體)讓股票手動工作在下面,他們都沒有工作。

$('#sameasbilling').attr("checked", checked); 

$('#sameasbilling').prop("checked", true); 

在此先感謝。擔。

+1

這個問題更多的是我認爲的JQuery'toggle()事件。嘗試改變切換到'click()'事件,看看這是否有幫助? – 2012-02-17 10:39:44

+0

謝謝,事實證明問題出在.toggle函數。 – 2012-02-17 11:40:54

回答

1

您在此例中使用toggle()方法不正確,請改爲使用click()。試試這個:

$('#sameasbilling').click(function() { 
    if ($(this).is(":checked")) { 
     //assign value of billing firstname text input to variable 'firstname' 
     var firstname = $('input[name=billingfirstnames]').val(); 

     //insert value of 'firstname' into delivery text input 
     $('input[name=deliveryfirstnames]').val(firstname); 
    } 
    else { 
     $('input[name=deliveryfirstnames]').val(""); 
    } 
} 
+0

感謝您的回覆,工作完美。那麼,我的.toggle函數格式不正確,或者是.toggle導致問題的原因,可能是.toggle函數的作用方式? – 2012-02-17 11:39:57

+0

'toggle()'語法本身是正確的,但將其放在'click()'處理程序中意味着代碼正在運行兩次。 – 2012-02-17 11:41:48