为了账号安全,请及时绑定邮箱和手机立即绑定

关于表单验证不弹出alert提示信息的问题

关于表单验证不弹出alert提示信息的问题

V_Tarate 2017-09-30 12:08:36
学校的一个作业,要求为一个网上书店设计下订单的表单,在提交前进行验证。包括验证是否有空白栏,是否在名字中含有数字,邮编,卡号等长度是否正确。但是在我完成代码后发现,我点击submit按钮后,并不会弹出任何提示信息。检查过我的浏览器设定(Chrome),没有阻拦弹出信息。另外一个相对简单的表单则能成功的弹出提示信息。请各位大手帮忙看下我的代码哪里出了问题,感激不尽!!!我写了以下的Javascript 函数进行验证:function validate(Order){ var temp var space //Check Book tittle  //empty if (document.Order.Book.value=="Book Tittle"||document.Order.Book.value==""){ alert("Please enter the book tittle.") return false } //including num for (var i=0;i<document.Order.Book.value.length;i++){ temp=document.Order.Book.value.substring(i,i+1)  if (digits.indexOf(temp)!=-1){  alert("There's no book with tittle including"+ temp +", please check again.")  return false } } //=================== //Check ISBN //empty if (document.Order.ISBN.value=="13-digits"||document.Order.ISBN.value==""){ alert("Please enter the ISBN number.") return false } //including no-digits for (var i=0;i<document.Order.ISBN.value.length;i++){ temp=document.Order.ISBN.value.substring(i,i+1)  if (digits.indexOf(temp)==-1){  alert("There's no book with ISBN number including"+ temp +", please check again.")  return false } } //=================== //check name //empty if (document.Order.Name.value=="Please enter your name."||document.Order.Name.value==""){ alert("Please enter your name.") return false } //include num for (var i=0;i<document.Order.Name.value.length;i++){ temp=document.Order.Name.value.substring(i,i+1) if (digits.indexOf(temp)!=-1){  alert("There's nobody name including "+ temp +", please check again.")  return false } } //at least 1 " " space = value.indexOf(" ") if (space == -1 ){ alert("Your name must including at least one space. Did your forgot your first name or last name?") return false } //=================== //Address line //line 1 empty if (document.Order.Address1.value==""){ alert("Please enter the shipping address.") return false } //=================== //state //not "state" temp = document.getElementById("SelectState") if (temp.option.[index].value == State){ alert ("Please select the state.") } //=================== //postcode //empty if (document.Order.Postcode.value=="XXXX"||document.Order.Postcode.value==""){ alert("Please enter the postcode.") return false } //length != 4 chars if (document.Order.Postcode.value.length != 4){ alert("Postcode should be a 4-digits number. Please check again.") return false } //including non-digits for (var i=0;i<document.Order.Postcode.value.length;i++){ temp=document.Order.Postcode.value.substring(i,i+1) if (digits.indexOf(temp)==-1){  alert("Postcode should not including"+ temp +", please check again.")  return false } } //=================== //CardID //empty if (document.Order.CardID.value==""){ alert("Please enter the Card ID.") return false } //length if (document.Order.Postcode.value.length != 16){ alert("Invalid Card ID. Please check again.") return false } //no-digits for (var i=0;i<document.Order.CardID.value.length;i++){ temp=document.Order.CardID.value.substring(i,i+1) if (digits.indexOf(temp)==-1){  alert("Card ID should not including"+ temp +", please check again.")  return false } } //=================== //holder name //empty if (document.Order.Holder.value==""){ alert("Please enter the Card ID.") return false } //including digits for (var i=0;i<document.Order.Holder.value.length;i++){ temp=document.Order.Holder.value.substring(i,i+1) if (digits.indexOf(temp)!=-1){  alert("Nobody name including "+ temp +", please check again.")  return false } } //at least 1 " " space = value.indexOf(" ") if (space == -1 ){ alert("Your name must including at least one space. Did your forgot your first name or last name?") return false } //=================== //Expiry Date //Month != MM temp = document.getElementById("Month") if (temp.option.[index].value == MM){ alert ("Please select the expiry month.") } //Year != YY temp = document.getElementById("Year") if (temp.option.[index].value == YY){ alert ("Please select the expiry year.") } //=================== //CVV //empty if (document.Order.CVV.value=="XXX"||document.Order.CVV.value==""){ alert("Please enter the CVV number.") return false } //no-digits for (var i=0;i<document.Order.CardID.value.length;i++){ temp=document.Order.CardID.value.substring(i,i+1) if (digits.indexOf(temp)==-1){  alert("CVV number should not including"+ temp +", please check again.")  return false } } //Length != 3 if (document.Order.CVV.value.length != 3){ alert("CVV number should be a 3-digits number. Please check again") return false } //Validation passed return true }以及,以下是这个表单的HTML代码: <form name="Order" onSubmit="validate(Order)"> <p> Product details:<br><br> </p>  <p>Book:    <input type="text" class="text" name="Book" value="Book Tittle" >    <br><br>  </p>     <p>ISBN:    <input type="text" class="text" name="ISBN" value="13-digits" >    <br><br>  </p>     <p> Shipping informations:<br><br> </p>     <p>Name:    <input type="text" class="text" name="Name" value="Please enter your name." >    <br><br>    </p>       <p>Address line 1:    <input type="text" class="text" name="Address1" >    <br><br>    </p>       <p>Address Line 2:    <input type="text" class="text" name="Address2" >    <br><br>  </p>     <p>State: <select name="State" id = "SelectState"> <option value="State" selected="selected">State</option> <option value="ACT" >ACT</option> <option value="NSW" >NSW</option> <option value="NT" >NT</option> <option value="QLD" >QLD</option> <option value="SA" >SA</option> <option value="TAS" >TAS</option> <option value="VIC" >VIC</option> <option value="WA" >WA</option> </select>    <br><br>  </p>     <p>Postcode:    <input type="text" class="text" name="Postcode" value="XXXX" >    <br><br>  </p>     <p>  Payment Information:<br><br>  </p>     <p>Card ID:    <input type="text" class="text" name="CardID" >    <br><br>  </p>     <p>Card Holder name:    <input type="text" class="text" name="Holder" >    <br><br>  </p>     <p>Expiry Date: <select name="Month" id="Month" > <option value="MM" selected="selected">MM</option> <option value="01" >01</option> <option value="02" >02</option> <option value="03" >03</option> <option value="04" >04</option> <option value="05" >05</option> <option value="06" >06</option> <option value="07" >07</option> <option value="08" >08</option> <option value="09" >09</option> <option value="10" >10</option> <option value="11" >11</option> <option value="12" >12</option> </select> / <select name="Year" id="Year"> <option value="YY" selected="selected">YY</option> <option value="18" >18</option> <option value="19" >19</option> <option value="20" >20</option> <option value="21" >21</option> <option value="22" >22</option> <option value="23" >23</option> <option value="24" >24</option> <option value="25" >25</option> <option value="26" >26</option> <option value="27" >27</option> </select>    <br><br>  </p>     <p>CVV:    <input type="text" class="text" name="CVV" value="XXX" >    <br><br>  </p>     <p>  <br>  <input type="submit" class="btn" value="Submit">                 <input type="reset" class="btn" value="Reset">    </p> </form>
查看完整描述

1 回答

?
一诺yinol

TA贡献27条经验 获得超4个赞

不是alert 的问题,代码有报错!

if (temp.option.[index].value == State){
   alert ("Please select the state.")
}

你这获取单选的数据不对,直接 temp.value 就行了啊!


查看完整回答
反对 回复 2017-09-30
  • V_Tarate
    V_Tarate
    感谢指正,但是我改完以后还是只有第一个检验book tittle是否输入的能弹出信息,其他的还是老样子,这是什么情况啊?
  • 一诺yinol
    一诺yinol
    if (digits.indexOf(temp)!=-1){ alert("There's no book with tittle including"+ temp +", please check again.") return false } digits 没定义!
  • 1 回答
  • 0 关注
  • 1814 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信