Javascript 为什么在post之前未验证html输入字段
所以在html主体中,我有两个Javascript 为什么在post之前未验证html输入字段,javascript,html,Javascript,Html,所以在html主体中,我有两个 <script type="text/javascript"> function validateMelco(form) { toReturn=true; if (form.melco.value.length==0) { alert("Please enter your Melco serial no"); toReturn=false; } return toReturn; } </script>
<script type="text/javascript">
function validateMelco(form) {
toReturn=true;
if (form.melco.value.length==0) {
alert("Please enter your Melco serial no");
toReturn=false;
}
return toReturn;
}
</script>
功能验证EMELCO(表格){
toReturn=true;
if(form.melco.value.length==0){
警报(“请输入您的Melco序列号”);
返回=错误;
}
回归回归;
}
及
Melco松空(Melco折扣)
40英镑(50美元)
Melco序列号:
但是,用户可以单击按钮,而无需在输入字段中输入任何内容,不会显示任何警报,也不会发布表单。为什么JavaScript验证没有启动?更改行
<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco()" method="post">
到
您正在调用没有参数的函数,但它需要一个标识表单的参数。所以它什么都做不了。
<!DOCTYPE html>
<html>
<body>
<p>When you submit the form, a function is triggered which alerts some text.</p>
<tr>
<td valign="top"><b>SongKong for Melco (Melco discount)</b>
</td>
<td valign="top">£40 ($50 USD)
</td>
<td valign="top">
<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco()" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="5UC5NAYZ6JZR8">
<input alt="PayPal" type="image" src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" border="0" name="submit">
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1">
Melco Serial No:<input type="textfield" name="melco"/>
</form>
</td>
</tr>
<script>
function validateMelco(form) {
toReturn=true;
if (document.forms["paypalpro"]["melco"].value == "") {
alert("Please enter your Melco serial no");
toReturn=false;
}
return toReturn;
}
</script>
</body>
</html>
当您提交表单时,会触发一个功能,提醒某些文本
Melco松空(Melco折扣)
40英镑(50美元)
Melco序列号:
功能验证EMELCO(表格){
toReturn=true;
如果(document.forms[“paypalpro”][“melco”]。value==“”){
警报(“请输入您的Melco序列号”);
返回=错误;
}
回归回归;
}
表单对象尚未传递给函数“validateMelco()”以访问表单元素。因此,我使用javascript document对象使用“document.forms[“paypalpro”][“melco”]”访问表单。如果
validateMelco
希望表单作为参数,并且您的onsubmit
没有提供表单参数,我使用的是DOM,因此不需要该参数。代码正常工作。:)仅仅转储代码是没有帮助的。解释问题,然后解释解决方案。@LightnessRacesinOrbit我是这里的初学者。抱歉没有解释。我将在今后的回答中牢记这一点。:)您可以将解释编辑到此答案中。为什么只在将来开始?为什么只检查值是否为空时检查值的长度?似乎是不必要的部分。@AmericanSlime真正的验证还没有完成,但问题是为什么没有调用验证(不管是什么)。
<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco(this)" method="post">
<!DOCTYPE html>
<html>
<body>
<p>When you submit the form, a function is triggered which alerts some text.</p>
<tr>
<td valign="top"><b>SongKong for Melco (Melco discount)</b>
</td>
<td valign="top">£40 ($50 USD)
</td>
<td valign="top">
<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco()" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="5UC5NAYZ6JZR8">
<input alt="PayPal" type="image" src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" border="0" name="submit">
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1">
Melco Serial No:<input type="textfield" name="melco"/>
</form>
</td>
</tr>
<script>
function validateMelco(form) {
toReturn=true;
if (document.forms["paypalpro"]["melco"].value == "") {
alert("Please enter your Melco serial no");
toReturn=false;
}
return toReturn;
}
</script>
</body>
</html>