2012-04-23 79 views
0

我对表单不太了解,而且对于一个简单的问题我有很大的困难。如果选择选项被禁用,从提交中停止表单

我有一个包含以下内容的形式:

 <select id="values" name="Choice"> 
      <option value="choose">Please Choose...</option> 
      <option value="01">Value 1</option> 
      <option value="02">Value 2</option> 
     </select> 

所有我想要做的是,如果没有价值-01或价值-02被选定,但禁用选项不起作用停止提交表单。

我该如何做到这一点?

UPDATE:

我已经使用JavaScript来检查的形式,但这似乎并没有工作。

function submitForm() { 
     if (formObj.Choice.value == '') { 
      alert("Please select a value"); 
      return false; 
     } 
     return true; 
    } 

更新2:在回答@ h4b0问题:

<input type="submit" value="Search" class="screen-reader-text button cf" name="SubmitButton" onclick="return submitForm();"> 
+0

你怎么称'submitForm()'?尝试检查'selectedIndex == 0' – maialithar 2012-04-23 12:16:12

+0

@ h4b0更新的问题以显示提交按钮的代码。不知道如何合并'selectedIndex = 0'-不是很好的形式和js – 2012-04-23 12:23:08

回答

1

在表单标签,当表单提交使用类似

<form name='myForm' method='post' id='myForm' onsubmit='return submitForm()'> 
.... 
</form> 

,它将运行的JavaScript函数,然后将结果的值返回给窗体。如果它是真的,它会发布数据。如果结果是错误的,它将取消提交。

您确实接近您在提交按钮中的内容,但将onclick更改为onsubmit,并将事件绑定移至窗体标记。

[编辑]

你的形式将永远不会回到你是如何检查的选择值假。由于没有任何选项具有值='',所以if语句永远不会计算为true并将false返回给函数调用方。

+0

谢谢 - 取代'选项值=“选择”'选项值=“”'一切运作良好,这是一个很好的,干净,简单的修复。 – 2012-04-23 13:17:09

0

尝试此操作,同时提交表单调用方法以通过selectedIndex检查您的条件,并返回false以取消提交。

<script> 
function validateMe(){ 
    var x=document.getElementById("Choice").selectedIndex; 
    var y=document.getElementById("Choice").options; 
    if(y[x] != "01"|| y[x] != "02"){ 
     return false; 
    } 
    return true; 
} 
</script> 
<form name="YourForm" id ="YourForm" onSubmit="return validateMe()"> 
<select id="values" name="Choice" id="Choice"> 
     <option value="choose">Please Choose...</option> 
     <option value="01">Value 1</option> 
     <option value="02">Value 2</option> 
    </select> 

<input type="submit" value="Search" class="screen-reader-text button cf" name="SubmitButton"> 

</form> 
+0

你应该改变你的if语句。我认为你正在寻找 if(x!=“01”|| x!=“02”){ – Goldentoa11 2012-04-23 12:36:48

相关问题