2014-01-11 32 views
0

以下echo語句使用php創建一個空的文本框和一個提交按鈕。驗證輸入在提交時不爲空

echo"<td><form id=\"edit\" name=\"edit\" method=\"post\" action=\"../assets/modules/coursemanager/process.cm.php\" onsubmit=\"return check_edit();\"> 
    <input type=\"text\" size=\"3\" id=\"edit_places\" name=\"edit_places\" value=\"\" /> 
    <input type=\"hidden\" name=\"sid\" value=\"".$sid."\" /> 
    <input type=\"submit\" name=\"Submit\" value=\"edit places\" /></form></td>"; 

這是我正在使用的驗證JavaScript,但上面的表格忽略了它。

function check_edit(){ 
     var notempty=document.forms["edit"]["edit_places"].value; 
     if(notempty==null || notempty==""){ 
      alert("Please enter the new number of available places and try again"); 
      return false; 
     }else{  
      return true; 
     } 
    } 

如果有人能讓我看看我的錯誤,我將不勝感激。

+0

不知道這是你的問題,而是'notempty == nul || notempty ==「」'應該是'notempty == null || notempty == 「」'。另外,由於Javascript的工作原理,一種簡單的方法是'if(!notempty)',它將處理'null'和''「',還有'undefined''false'和'0'。如果你只想檢查'null' /''「'',你應該使用'==='而不是'=='。 – machineghost

+0

'null'在第三行拼寫錯誤 –

+0

啊,是的,謝謝你的喬希。我糾正了這個帖子:) – Twobears

回答

1

您可以檢查輸入的長度。

value = document.forms["edit"]["edit_places"].value.replace(/\s+/g, '') 

if (value.length > 0) { 
    return true; 
} else { 
    alert("Please enter the new number of available places and try again"); 
    return false; 
} 
+0

謝謝你的回答Knouroozi。我已經解決它如下: – Twobears

0

我在處理腳本中使用了一個else語句,它執行了這個技巧並且省去了check_edit函數。

if($_POST['edit_places']!== ''){ 
    $id=$_POST['sid']; 
    $z=$_POST['edit_places']; 
    $sql = "UPDATE xtra_session SET places=$z WHERE xtra_session.id=$id"; 
    $add = $modx->db->query($sql); 
    $msg = ($add? "available places has been updated" : "error: ".mysql_error()); 
    } 
    else { 
    echo "Please enter a number of places to change"; 
    } 

謝謝您的寶貴建議。