2010-04-26 59 views
1

這裏有什麼問題?警報功能正在工作,直到我將這個新功能添加到它。添加新函數後發生jQuery破壞函數

有什麼我做錯了嗎?它只是簡單地不再發出警報。

<input value="1" type="checkbox" name="salgsvilkar" id="checkbox2" style="float:left;" 
     /> 

    {literal} 
      <script src="http://code.jquery.com/jquery-latest.js"></script> 
       <script type="text/javascript"> 
    $(function() { 
     //checkbox 
     $("#scrollwrap").click(function(){ 
     $("#scrollwrap").toggleClass('highlight'); 
     });​ 
    }); 

    $(function(){ 
     //button 
     $("#fullfor_btn").click(function(e){ 
      if(!$("#checkbox2").is(':checked') == false) 
      { 
       alert("Please accept the terms of sale."); 
       e.preventDefault(); 
      } 
     }); 
    }); 
    </script> 
     {/literal} 


<button type="submit" class="submit" name="{$method}" id="fullfor_btn" title="Fullfør bestillingen nå" value="">&nbsp;</button> 

回答

2

相反的:

if(!$("#checkbox2").is(':checked') == false) { 

爲什麼不使用更可讀:

if($("#checkbox2").is(':checked')) { 

編輯:如果你的目的是警告射擊時複選框檢查:

if(!$("#checkbox2").is(':checked')) { 
+0

因爲如果未選中此框,警報必須出現。 – Kyle 2010-04-26 09:28:44

+0

@凱爾 - 在這種情況下,問題與該聲明:)。只是擺脫'==虛假' – karim79 2010-04-26 09:29:41

+0

謝謝:)所以如果它有'!'它意味着'不''? – Kyle 2010-04-26 09:30:57

0

你可以把所有的代碼在你的例子一樣$(函數(){代碼}),您正在設置文檔準備兩次

$(function() { 
    //checkbox 
    $("#scrollwrap").click(function(){ 
    $("#scrollwrap").toggleClass('highlight'); 
    });​ 

    //button 
    $("#fullfor_btn").click(function(e){ 
     if($("#checkbox2").is(':checked')) 
     { 
      alert("Please accept the terms of sale."); 
      e.preventDefault(); 
     } 
    }); 
}); 
+0

謝謝,我添加了雙重文檔,看看它是否會強制警報,但即使刪除它,警報仍然不會觸發。 – Kyle 2010-04-26 09:26:17

+0

你的代碼工作得很好,我認爲你的代碼在其他地方有衝突。我只能看到'if($(「#checkbox2」)。is(':checked')== false)'可能只是:'if($(「#checkbox2」)。is(':checked' ))' – meo 2010-04-26 09:28:54

+0

這是一個有爭議的問題,因爲jQuery事件處理程序不會相互覆蓋。這兩個處理程序將被附加。嘗試一下。 – 2010-04-26 09:31:36

1

你的邏輯可能不是你預期什麼,karim79說。

if(!$("#checkbox2").is(':checked') == false) 

在功能上等同於

if($("#checkbox2").is(':checked') == true) 

所以當複選框被選中您的警報纔會觸發。

0

適合我。

雖然看起來有點奇怪,你會觸發警報時,複選框被選中,而不是當它不是。