Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在post之前未验证html输入字段_Javascript_Html - Fatal编程技术网

Javascript 为什么在post之前未验证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>

所以在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>

功能验证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>