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, время: 04:53. |