2013-03-09 68 views
3

我有一個用戶輸入值的輸入文本字段(name: qtyText)。我想使用JavaScript將此值設置爲另一個隱藏字段(name: qtyTextHidden)的值。我怎麼去解決它?將Javascript輸入隱藏字段的值設置爲在另一個輸入文本字段中輸入的值的值

HTML

<input name = "qtyText" type = "textbox" size = "2" value = "" /> 
<input type="hidden" value = "" name="qtyTextHidden"/> 

我的努力來設置使用JS工作領域的價值,但我無法將值發送給servlet。所以我試圖直接使用函數設置值,然後嘗試將它發送到servlet。我想有一個value = someJSFunction()種。該函數需要在「qtyText」輸入字段中的「onChange」上觸發。

回答

6

使用jQuery:

$(document).ready(function() { 
    $('input:text[name="qtyText"]').keyup(function() { 
     $('input:hidden[name="qtyTextHidden"]').val($(this).val()); 
    }); 
}); 

使用JavaScript:

window.onload = function() { 
    if(document.readyState == 'complete') { 
     document.getElementsByTagName('input')[0].onkeyup = function() { 
      document.getElementsByTagName('input')[1].value = this.value; 
     }; 
    } 
}: 
+0

謝謝大家。這個問題似乎稍有不同。我可以設置隱藏字段的值。但是,當我將它傳遞給一個servlet時,該值將在servlet字段中爲空。我檢查了另一個動態生成的值和它的相同問題。有關於此的任何想法? – Raghu 2013-03-09 18:11:33

1

我建議:

function updateHidden(valueFrom, valueTo) { 
    valueTo.value = valueFrom.value; 
} 

var inputs = document.getElementsByTagName('input'), 
    textInputs = [], 
    hiddenInputs = [], 
    refersTo; 

for (var i = 0, len = inputs.length; i < len; i++) { 
    switch (inputs[i].type) { 
     case 'hidden': 
      hiddenInputs.push(inputs[i]); 
      break; 
     case 'text': 
     default: 
      textInputs.push(inputs[i]); 
      break; 
    } 
} 

for (var i = 0, len = textInputs.length; i < len; i++) { 
    refersTo = document.getElementsByName(textInputs[i].name + 'Hidden')[0]; 
    if (refersTo !== null) { 
     textInputs[i].onchange = function() { 
      updateHidden(this, document.getElementsByName(this.name + 'Hidden')[0]); 
     }; 
    } 
} 

JS Fiddle demo

順便說一句:有沒有type="textbox"。完全一樣。 Ever任何地方在HTML中,甚至在HTML 5中:它的type="text"工作的唯一原因type="textbox"是因爲瀏覽器是可笑的原諒,並且,如果type不明白,它默認type="text"

+0

感謝您的努力。我覺得我需要修改一下才能採用這個答案。將嘗試並更新我的迴應。 – Raghu 2013-03-09 17:58:10

1

要設置隱藏字段的值,最簡單的方法是使用JavaScript函數傳遞三個參數fromtoform名稱:

<script type="text/javascript"> 
    function someJSFunction(form, from, to){ 
     var el_from=form[from], el_to=form[to]; 
     el_to.value=el_from.value; 
     return el_to.value; 
    } 
</script> 
<form name="myform"> 
<input name = "qtyText" type = "textbox" size = "2" value = "" onchange="someJSFunction(myform, 'qtyText', 'qtyTextHidden')"/> 
<input type="hidden" value = "" name="qtyTextHidden"/>