input и пробелы...
Есть три инпута
Скриптом содержимое этих трех инпутов отправляется в четвертый, скрытый. И через пробел там расставляется q1.value+" "+q2.value+" "+q3.value Возможно ли действие, обратное этому? т.е. вводим в один инпут три "значения" через пробел, а они отправляются в три других соответствующих инпута? |
Viral,
<!DOCTYPE html> <html></head> <meta charset = "utf -8" /> </head></body> значения, разделенные пробелами <input id = "#i4"/> <button id = "#go">go</button> </body></html> <script> function $(id){ return document.getElementById(id); } var inp = $("#i4"); $("#go").onclick = function(){ var vals = inp.value.replace( /^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "").split(/\s+/); for(var i = 0, il = vals.length; i < il; i ++){ document.body.appendChild(document.createElement("BR")); document.body.appendChild(document.createElement("INPUT")).value = vals[i]; } } </script> |
Спасибо, отдельно от основной страницы работает как надо, но отказывается на сайте.
var vals = inp.value.replace( /^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "").split(/\s+/); Объясните, пожалуйста, подробнее, что делает эта строчка кода. Желательно каждый элемент... IE 8 критует ошибку и говорит, что тут требуется объект. З.Ы. это не первый и далеко не единственный инпут на странице. |
Цитата:
|
Как вариант...
<!DOCTYPE html> <html> <head> <title>test</title> <style type="text/css"> </style> <script type="text/javascript"> function Go() { var str=document.getElementById('data').value var a=str.split(' ') var o=document.getElementsByName('group') var i for (i=0; i<o.length; i++) { o[i].value=a[i] } } </script> </head> <body> <div> <input type='text' name='group' /> <input type='text' name='group' /> <input type='text' name='group' /> </div> <input type='text' id='data' /> <input type='button' value='Set' onclick='Go()' /> </body> </html> |
Viral,
сначала обрезает у строки пробелы по краям(trim): str = str.replace( /^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "") потом превращает строку в массив строк, разделив основную по правилу /\s+/ (каждые 1+ пробельный символ) методом строк split replace split регулярные выражения |
Спасибо большое :thanks:
|
Вообще проще юзать match(/\S+/g) .
|
Часовой пояс GMT +3, время: 17:12. |