我在表单上有一个javascript应该执行以下操作:
在Chrome中执行时,我在提交表单时遇到以下错误。
error testVATNumber is not defined
有人知道我收到此错误的原因吗?
$(document).ready(function(){
function testVATNumber () {
var newVATNumber = checkVATNumber (document.getElementById('vat').value);
if (newVATNumber) {
document.getElementById('vat').value = newVATNumber;
return true;
}
else {
$(".validation-error#error").text("Dit is geen geldig BTW nummer.");
$(".validation-error#detail").text("Vergeet de landscode niet (en voor België de leidende '0'). Gebruik ook geen punten of spaties. bv. BE0409773728, NL001234567B01, etc.");
$(".validation-error#error").css("color", "red");
$(".validation-error#detail").css("color", "red");
return false;
};
};
function checkStuff () {
if (document.getElementById('statuut').value != 'Gepensioneerd/Op rust'
&& document.getElementById('statuut').value != 'Niet-Actief'
&& document.getElementById('statuut').value != 'Student'
&& document.getElementById('statuut').value != 'Werkzoekend'
&& document.getElementById('land').value == '4cce53c0-20bb-e311-840c-005056040a5f') { // België
$("form").bind("submit", testVATNumber);
$("#vat").parent().show();
$(".validation-error#error").show();
$(".validation-error#detail").show();
$("form").bind("submit", testVATNumber);
};
else {
$("#vat").parent().hide();
$(".validation-error#error").hide();
$(".validation-error#detail").hide();
$("form").unbind("submit", testVATNumber);
};
};
if ('~@type_correctie~'=='verplicht') {
$('input').prop('disabled', true);
$('select').prop('disabled', true);
$("button.bevestigen").hide();
$(".aanpassen-letop").hide();
$(".aanpassen").click(function(){
$('input').prop('disabled', function(i, v) { return !v; });
$('select').prop('disabled', function(i, v) { return !v; });
$("button.bevestigen").show();
$(".aanpassen").hide();
$(".aanpassen-letop").show();
checkStuff();
$("#statuut").change(checkStuff());
$("#land").change(checkStuff(););
});
};
else {
$("form").bind("submit", testVATNumber);
};
});
答案 0 :(得分:1)
您不需要将任何这些功能放在document.onReady中。
还必须从document.ready范围内调用在document.ready范围内声明的任何函数。如果不是,则当ready()方法退出时,它们会丢失该范围。所以它在你试图调用它的范围内不存在,因此你的错误。