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

+0

Вот почему я хотел, чтобы сценарий был уникальным для каждого эха, я просто не знаю, как это сделать. Я обновил код, чтобы показать всю форму после эха, надеюсь, что помогает и ценит, что вы пытаетесь помочь! – Bassam

+0

атрибут id элементов html * должен * быть уникальным (если вы пройдете через предоставленный вами код, у вас будет несколько идентификаторов заполнения) @ Ответ на TheBrain ниже должен работать. – NickSlash

ответ

1

Я придумал решение для этого, и думал, что я поделитесь им, если кто-то столкнется с этим. Но в основном форма, которая повторяется/повторяется, получает уникальные данные при каждом повторении. Поэтому в основном я принял это уникальное значение и ставлю функцию & идентификатор формы. Сейчас довольно просто, что я оглядываюсь назад это, мне просто пришлось очень серьезно думать о том, как получить что-то уникальное, что изменилось. Надеюсь, это поможет кому-то.

2

если ваш текстовое поле в любой форме вы можете использовать только один обобщенную функцию, как это, что не будет работать для всех форм независимо от их ID

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

Я не думаю, что проблема связана с идентификатором формы, с ее скриптом java. Даже при использовании измененного скрипта вы отправили мне ту же проблему. Javascript применяется к первому формату/текстовому полю. Проблема в том, что скрипт не ищет текст в первой форме, он должен работать для формы/текс-поля, заполненной человеком. Но так как я повторяю одну и ту же форму, первая форма/текстовое поле всегда должна содержать текст. – Bassam