首页 > 解决方案 > 如何进行良好的验证?

问题描述

我有一些验证问题。即使验证为假,表单仍在发送。问题出在哪里?

function ValidateForm(form){
  ErrorText= "";
  if ( ( form.memory[0].checked == false ) && ( form.memory[1].checked == false )  && ( form.memory[2].checked == false ) ){
     alert ( "Please choose size of RAM memory" );
     return false;
  }
  if (ErrorText= "") { form.submit() }
  return false;
} 

<button type="submit" form="form" class="submit-button" onClick="ValidateForm(this.form)">Dodaj do koszyka</button>

标签: javascriptformsvalidation

解决方案


按钮的默认行为type="submit"是提交表单,要停止这种行为,您需要返回 false。您的方法正在做什么,但您的onClick处理程序忽略了

<button type="submit" form="form" class="submit-button" onClick="return ValidateForm(this.form)">Dodaj do koszyka</button>
------------------------------------------------------------------^^^^

此外,无需调用form.submit()您的方法,如果您只是这样做,就会发生这种情况return true。所以改变

if (ErrorText= "") { form.submit() }

if (ErrorText == "") { return true; }

注意:你错过了一个双==不等于=


推荐阅读