2013-04-11 32 views
0

這是我的問題..我有一些JavaScript想運行,但是我需要它每次插入時都是唯一的。我嘗試添加一個變量來改變它,但它只是在第一次調用/顯示時才改變它。下面是該腳本:自動更改JavaScript函數值

 <script type=\"text/javascript\"> 
        function validate_f() 
        { 
        var x=document.forms[\"fill\"][\"textfield\"].value 
        if (x==null || x==\"\") 
         { 
         alert(\"Field cannot be empty\"); 
         return false; 
         } 
        } 
        </script> 

實際形式的代碼是:

    echo "<td width=\"10%\"> 
       <form method=\"POST\"action=\"$actual_link\" id=\"fill\" onsubmit=\"return validate_f();\"> 
       <input type=\"hidden\" value=\"{$data['id']}\" name=\"id\"> 
       <input type=\"text\" size=\"20\" class=\"BUTTON_INPUT\" name=\"url\" value=\"\" id=\"textfield\"> 
       </td> 
       <td width=\"1%\"> 
       <input type=\"Submit\" class=\"BUTTON_FILL\" name=\"fill\" value=\"\"> 
       </form> 

的問題是,形式獲取與不同的聯繫呼應多次,但該腳本將只工作的第一次。所以我唯一能想到的解決方案是將JavaScript與表單一起回顯,並在腳本&表單上更改函數名稱。

我希望我嘗試做是有道理的,所以基本上我需要「功能validate_f()」 &「的onsubmit = \」返回validate_f(); \「」隨着每次重複/回聲改變..

+1

沒有意見多次重複腳本塊(假設塊是相同的),因爲每個人將*替換*前一個。你能展示更多的代碼嗎?不僅僅是輸出,也是產生它的代碼。 – NickSlash 2013-04-11 19:34:36

+0

這就是爲什麼我希望腳本對每個回聲都是唯一的,我只是不知道如何去做。我更新了代碼以顯示回顯後的整個表單,希望能夠幫助並感謝您嘗試提供幫助! – Bassam 2013-04-12 01:12:16

+0

html元素的id屬性*必須是唯一的(如果你通過提供的代碼循環,你將有多個「填充」id)@ TheBrain的答案應該可以工作。 – NickSlash 2013-04-12 01:28:32

回答

1

我想出了一個解決方案,並認爲我會分享它,以防有人遇到此問題。但基本上,被回顯/重複的表單在每次重複時都會獲得唯一的數據。所以基本上我採用了這個唯一的值,並將其作爲函數&的表單ID。現在我回頭看看它,我只是非常認真思考如何獲得獨特的改變。希望這可以幫助別人..

2

如果您的文本字段是在每一個表格,您可以只用一個泛型函數這樣,會爲各種形式的工作,不管他們的ID

function validate_f() { 
     var x = this['textfield'] 
     if (!x || !x.value) { 
      alert("field cannot be empty") 
      return false 
     } 
     return true; 
    } 
+0

我不認爲這個問題是與表單ID,它與Java腳本。即使在使用修改後的腳本時,也會發生同樣的問題。 Javascript應用於第一個表單/文本字段。 問題是我希望腳本不在第一個表單中尋找文本,它應該適用於人填充的表單/ texfield。但是由於我有相同的表單重複,第一個表單/文本字段總是必須包含文本。 – Bassam 2013-04-11 23:04:36