2012-04-23 80 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

相關問題