我想模塊化下面的代碼,也有在全球範圍內聲明的對象功能,這是一個非常不好的做法如何模塊化jQuery?
$(document).ready(function() {
$('#registrationForm').on('submit', function(event) {
var valid = checkValidate();
if(!valid) {
event.preventDefault();
}
});
$('#termsAccepted').on('change', function() {
if($(this).is(":checked")) {
$('.error').hide();
}
});
$('#otherPaymentId').hide();
$('#paymentId').on('change', showPaymentIdBox);
});
var showPaymentIdBox = function() {
var myRadio = $('input[type=radio][name=paymentId]:checked').val();
if (myRadio == 0) {
$('#otherPaymentId').hide().val('');
} else {
$('#otherPaymentId').show();
}
}
var checkValidate = function() {
var validity = true;
if(!$('#termsAccepted').is(":checked")) {
$('.error').text('Please agree to the terms').show();
validity = false;
}
if($('#otherPaymentId').val() == "" && $('input[type=radio][name=paymentId]:checked').val() == 1) {
$('.error').text('Please enter a valid payment id field').show();
validity = false;
}
if(!checkEmail($('#otherPaymentId').val()) && $('input[type=radio][name=paymentId]:checked').val() != 0) {
$('.error').text('Please enter a valid payment id field').show()
validity = false;
}
return validity;
}
var checkEmail = function(email) {
if(email != '') {
var regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return regex.test(email);
} else {
return false;
}
}
是使用匿名函數包裝一個方式來處理它,任何提示?一個人怎麼能改進呢?
*「怎麼能改善這個?」 - 嗯,你已經指出了一個不好的做法和一個普遍接受的解決方案,所以我會從那裏開始。 – GolezTrol