2012-07-20 74 views
0

我使用PHP生成動態輸入,例如所生成的代碼的Javascript:如何 「GET」 從動態值產生輸入

HTML

<input type='text' name='name1' onBlur='getValue(1)'> 
<input type='text' name='name2' onBlur='getValue(2)'> 
<input type='text' name='name3' onBlur='getValue(3)'> 
<input type='text' name='name4' onBlur='getValue(4)'> 
<input type='text' name='name5' onBlur='getValue(5)'> 

或多個....

Javascript

function getValue(x){ 
    var nam = document.myForm.name[x].value; <<< error? 
    if(nam>1000){ 
     document.myForm.name[x].focus; <<< error? 
     alert ("input > 1000"); 
    } 
} 

什麼正確的方式來編碼JavaScript?我指出< < <錯誤?

感謝

+0

內聯JS是邪惡的。 http://en.wikipedia.org/wiki/Unobtrusive_JavaScript – wlf 2012-11-15 11:24:52

回答

0

Working Example

function getValue(nameValue){ 
    var element = document.getElementsByName('name' + nameValue)[0]; 
    if(element){ 
     if(parseInt(element.value, 10) > 1000){ 
      setTimeout(function(){ 
       element.focus(); 
      },0); 
      alert ("input > 1000"); 
     } 
    } 
} 

用法:

getValue(1); 
+0

Gabe,感謝您的工作示例工作正常,但是一旦我將您的代碼實施到我的項目中,焦點不工作,它總是在使用「Tab」時顯示下一個對象 – user1493339 2012-07-20 02:19:00

+0

在哪個瀏覽器中焦點不起作用。我只測試了鉻。 – Gabe 2012-07-20 02:20:22

+0

@ user1493339 ...查看我更新的答案。應該解決焦點問題。 http://jsfiddle.net/qfFdm/ ...測試Chrome,FF,IE7,IE8和IE9 – Gabe 2012-07-20 02:26:46

0

document.myForm.name['name'+x].value;document.myForm.name['name'+x].focus()

+0

爲什麼有2個名字? document.myForm。** name ** ['** name **'+ x] .value; – user1493339 2012-07-20 02:23:42

+0

你的代碼是'',所以元素的名字是'name1',而不是'1'。在你的問題中,你試圖找到名稱爲「1」的元素,但是你的元素名稱是「name1」,而不是「1」。合理? – cegfault 2012-07-21 05:14:22

+0

哦,我明白了,所以第一個名字是一個保留字「名字」,那麼我的第二個名字(在毯子裏面)就是我的名字...... 我是對的!? – user1493339 2012-07-27 17:08:44