10/10/2018, 09:52
Xử lý tất cả control trong form trong 1 vòng lặp
Trong form của mình có khoảng 100 textbox có name lần lượt là text1 -> text100.
Mình muốn trong 1 sự kiện nào đó, thay đổi đồng loạt giá trị cả 100 textbox này thì phải làm sao?
Mình tạo mảng từ myArray[1] đến myArray[100] có giá trị là từ text1 đến text100. Sau đó trong vòng lặp mình dùng form.myArray[i].value=.... nhưng không có kết quả
Mình muốn trong 1 sự kiện nào đó, thay đổi đồng loạt giá trị cả 100 textbox này thì phải làm sao?
Mình tạo mảng từ myArray[1] đến myArray[100] có giá trị là từ text1 đến text100. Sau đó trong vòng lặp mình dùng form.myArray[i].value=.... nhưng không có kết quả
Bài liên quan





$(#buttonId).click(function() { $(':text').val("cái gì đó"); });<script language="javascript"> function changeall(value){ var ob=document.getElementByName("mytextbox"); for (var i=0; i<ob.length;i++){ ob[i].value=value[i]; } } </script> <form> <input type="text" name="mytextbox" /> <input type="text" name="mytextbox" /> ..... <input type="text" name="mytextbox" /> </form> <a href="javscript:changeall(...)">change to 2</a>Với lại chỉ ví dụ là 100 textbox này thay đổi đồng loạt cho mọi người dễ hình dung thôi, chứ thực ra không phải thay đổi giống nhau, nên cần 1 textbox là 1 name khác nhau
for (i=1; i<=100; i++)
{
document.forms['formName']['text'+i].value = 'New val';
}
mình nghĩ cách thuyduongcd trên là ổn
function getTextBox(ele){ var result =new Array(); //truth textbox if(ele.tagName=='input' && ele.type=='text'){ result.push(ele); return result; } //truth container if(ele.hasChildNodes){ for(var i = 0;i<ele.childNodes.length;i++) { var child=getTextBox(ele.childNodes[i]); while (child.length>0){ result.push(child.pop()); } } return result; } //other, return empty array. return result; } // var textArray=getTextBox(document.getElementById('form_post_id')) for(var i=0;i<textArray.length;i++) textArray[i].value=value;2. Dùng chung 1 tên thì truyền đến trang xử lý cũng có vấn đề gì đâu.
<form id="myForm"> </form> <script> var x=document.getElementById("myForm"); for (var i=0;i<x.length;i++) { var el=x.elements[i]; if (el.type=="textbox"){ el.value="new value"; } } </script>Mà khi name có dạng textboxname[] thì ob[i].value=value[i] không còn được nữa!
Chỉ cần sửa lại chỗ này:
var ob=document.getElementByName("mytextbox[]");