Скорее всего, будет легче закодировать логику. Регулярное выражение используется для сопоставления шаблонов. Пароли имеют тенденцию быть несколько случайными строками, поэтому проблема не может легко решаться регулярным выражением. Это возможно, но будет загадочно читать и с трудом поддерживать.
Полное редактирование.
Хорошо, я понял, что вы искали. Во-первых, вы должны исправить свой HTML (не помещайте текст внутри ввода ... и не вводите его внутри метки).
<label for="test">Last Name</label>
<input type="radio" name="searchtype" id="test" value="name" onclick="setName(this)" />
<br/>
<label for="test2">Phone Number</label>
<input type="radio" id="test2" name="searchtype" value="phonenumber" onclick="setName(this)" />
<br/>
<label for="inputfield" id="searchtitle" style="font-size:2em;">Enter Last Name</label>
<br/>
<input type="text" name="inputfield" id="inputfield" style="font-size:2em;" />
JavaScript (в Jquery для краткости):
function setName(elem)
{
$('#searchtitle').html('Enter ' + $('label[for="'+elem.id+'"]').html());
}
вы должны вставлять input
внутри тега label
. тег ввода должен быть закрыт />
. Это семантический HTML. Когда вы нажмете на эту метку, активируйте ввод. InnerHTML работает только для метки. Он вернет вам значение метки.
<label for="inputfield" id="searchtitle" style="font-size:2em;">Enter Last Name
<input type="text" name="inputfield" id="inputfield" style="font-size:2em;" />
</label>
JavaScript:
console.log(document.getElementById('searchtitle').innerHTML); // returns 'Enter Last Name'
Вы неправильно Input tag
закрыли </input>
, это должно быть
<input type="radio" name="searchtype" id="test" value="name" onclick="setName(this)"/>Last Name<br/>
<input type="radio" name="searchtype" value="phonenumber" onclick="setName(this)"/>Phone Number<br/>
Сначала добавьте метки вокруг ваших входов. Во-вторых, используйте getName (this.parentNode). Наконец, вызовите innerText вместо innerHtml.
<html>
<head>
<script>
function setName(el){
document.getElementById('searchtitle').innerHTML = "Enter " + el.innerText;
}
</script>
</head>
<body>
<label><input type="radio" name="searchtype" value="name" onclick="setName(this.parentNode)"/>Last
Name</label><br/>
<label><input type="radio" name="searchtype" value="phonenumber" onclick="setName(this.parentNode)"/>Phone
Number</label><br/>
<label for="inputfield" id="searchtitle" style="font-size:2em;">Enter Last Name</label><br/>
<input type="text" name="inputfield" id="inputfield" style="font-size:2em;"></input>
</body>
</html>
Если вам нужно значение входного тега, вы хотите использовать .value
.