2016-10-28 55 views
0

我有jQuery的一個問題javascript函數轉換爲jQuery的後JavaScript來jquery的過渡

這是我的功能如何在JavaScript代碼都看了:

document.getElementById('checkoutForm').onsubmit = function() { 
    var x = $("#checkbox-checkout").is(":checked"); 
    if (!x) { 
     alert("Please indicate that you have read and agree to the Terms and Conditions"); 
     return false; 
    } 
}; 

jQuery的

$("#checkoutForm").on("submit", function() { 
    validateTerms(); 
}); 

validateTerms: function() { 
var x = $("#checkbox-checkout").is(":checked"); 
if (!x) { 
    alert("Please indicate that you have read and agree to the Terms and Conditions"); 
      return false; 
} 

HTML:

<div id="checkout-checkbox"> 
    <input type="checkbox" id="checkbox-checkout"> 
</div> 
<form method="post" id="checkoutForm"> 
    <button type="submit" class="btn btn-green btn-pay">PAY nOW</button>  
</form> 

你知道什麼可能導致甚至沒有調用函數?你看到有什麼不對嗎?什麼可能是這樣做的正確方法?

+0

您沒有任何帶有'checkoutForm'的元素ID – Victor

+0

複製時我意外刪除了它,但它在表格 –

回答

1

下面的行有錯誤,適當使用對象表示法。

validateTerms: function() { 

選項1:

var validateTerms = function() { 
    // to do rest 
    // return true or false 
}; 

選項2:

$("#checkoutForm").on("submit", function() { 
    var x = $("#checkbox-checkout").is(":checked"); 
    if (!x) { 
     alert("Please indicate that you have read and agree to the Terms and Conditions"); 
     return false; 
    } 
}); 

選項3:

function validateTerms() { 
    // to do rest 
    // return true or false 
} 

對於選項1 & 3,需要如以下使用的功能:

$("#checkoutForm").on("submit", validateTerms); 

OR

$("#checkoutForm").on("submit", function() { 
    return validateTerms(); 
}); 
+0

上,但請注意,在使用函數時,您的選項1中的'validateTerms'將會是'undefined',更好的去'function validateTerms(){' – markoffden

1
$("#checkoutForm").on("submit", function() { 
    return validateTerms(); 
}); 

這裏你調用一個函數validateTerms();驗證表單。 現在這個函數根據驗證返回你truefalse

因此,要確定天氣表單是否應該提交,您需要從提交事件返回true或false。