2013-04-18 78 views
0

我希望只有在選擇'我的val 2'選項時才能提交表單。如果選擇了另一個選項並按下提交按鈕,我希望它只是說他們不能提交。另外,如果他們提交它,我希望它進入提交頁面,說明他們提交了什麼。這裏是我的形式:表單提交checkscript()javascript

<form action="formSub.php" method="POST" name="myform" onsubmit="return checkscript()"> 
      <select name="test_select"> 
       <option value="1">my val 1</option> 
       <option value="2">my val 2</option> 
       <option value="3">my val 3</option> 
       <option value="4">my val 4</option> 
      </select> 
      <input type="submit" value="Submit" name="test_button" onClick="submitform(test_select.value)"> 
     </form> 

這裏是我的javascript功能

function submitform(val) { 
    var obj = val;; 
    alert("Value = " + obj); 
} 

function checkscript() { 
    if (obj !== "2") { 
     alert('This is not \'my val 2\' so you cannot submit'); 
     return false; 
    } 
    return true; 
} 

而且,我checkscript功能無法正常工作。 f語句總是錯誤的。

+0

您需要了解有關範圍的JavaScript基礎知識。來自一個函數的局部變量在另一個函數中不可用。 – ThiefMaster 2013-04-18 06:22:18

+0

謝謝,我意識到,我試過後,爲什麼這是行不通的。我只是不知道該放什麼。 – Freiermuth 2013-04-18 06:26:49

回答

2

你的腳本中有錯誤。 JavaScript在函數checkscript()的作用域中看不到變量obj。您寧願嘗試將該變量聲明爲全局變量。你有這裏的示例如何驗證表單: ​​ 還有:Javascript form validation onsubmit as @Noob UnChained寫入時必須通過腳本從字段中獲取值。你也有功能submitform(val)

正如我看到該函數從選擇面板中獲取值。所以你可以嘗試使用該函數從列表中返回選定的值。

var obj; 
function submitform(val) { 
    obj = val; 
    alert("Value = " + obj); 
} 

function checkscript() { 
    if (obj !== "2") { 
     alert('This is not \'my val 2\' so you cannot submit'); 
     return false; 
    } 
    return true; 
} 

對於第一功能submitform()設置可變物鏡和第二功能使用組物鏡,以檢查值。

但是,如果我是你,我會使用@Noob UnChained方法,因爲它更簡單,也可以在一個函數中驗證多種形式。 也嘗試閱讀JavaScripts教程來編寫好的scipt。

我希望能幫到你。