2013-04-11 36 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