заполнить 'today + x days' как входное значение формы [duplicate]

Скорее всего, будет легче закодировать логику. Регулярное выражение используется для сопоставления шаблонов. Пароли имеют тенденцию быть несколько случайными строками, поэтому проблема не может легко решаться регулярным выражением. Это возможно, но будет загадочно читать и с трудом поддерживать.

5
задан user052211 22 May 2011 в 06:56
поделиться

5 ответов


Полное редактирование.

Хорошо, я понял, что вы искали. Во-первых, вы должны исправить свой 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());
}
1
ответ дан John Green 17 August 2018 в 09:54
поделиться
  • 1
    Идентификатор - это переменная, равная объекту переключателя, она передается через использование слова «это». Я мог бы использовать set Name («Фамилия»), а затем getElementById (ID). – user052211 22 May 2011 в 07:22
  • 2
    Да, прости. Я уже это заметил и отредактировал сам код, но забыл отредактировать аннотацию. – John Green 22 May 2011 в 07:25
  • 3
    Хорошо, теперь я знаю, что вы ищете (я думаю), и обновил свой ответ соответственно. – John Green 22 May 2011 в 07:41
  • 4
    Я вижу, что я помещаю текст в & lt; input & gt; вместо метки & lt; метки. Интересно, могу ли я вызвать setName (this.previousSibling) и получить innerHTML в & lt; label & gt ;? (или что-то вроде этого, я думаю, что это метод для предыдущего брата) – user052211 22 May 2011 в 07:49
  • 5
    Нет ... Что этот код делает, это получить HTML-метку, атрибут whOS FOR равен идентификатору ввода (так работают ярлыки). Поскольку атрибут FOR обычно уникален для элемента управления, к которому он привязан, это делает хорошее решение для селектора атрибутов. Оттуда он объединяет его со строкой и помещает ее в HTML вашего названного ярлыка (searchtitle). – John Green 22 May 2011 в 07:51

вы должны вставлять 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'
5
ответ дан Mohsen 17 August 2018 в 09:54
поделиться

Вы неправильно 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/>
0
ответ дан mr_eclair 17 August 2018 в 09:54
поделиться
  • 1
    Это формат XHTML - я не верю в стандарт HTML5. – Jeff 22 May 2011 в 07:07
  • 2
    Я не знал этого. может быть, это моя проблема. Возможно, & lt; input & gt; не имеет внутреннегоHTML. Мне нужно будет изучить это. – user052211 22 May 2011 в 07:24
  • 3
    Нет, это не имеет значения, ваш браузер должен анализировать его в любом случае (обратно совместим), но он не решит вашу проблему. Я думаю, вы правы, что вход не имеет innerHTML. Это также означает, что вы можете удалить эти & lt; / input & gt; теги в вашем коде. – Jeff 22 May 2011 в 07:39

Сначала добавьте метки вокруг ваших входов. Во-вторых, используйте 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>
1
ответ дан tofutim 17 August 2018 в 09:54
поделиться
  • 1
    проблема в том, что он пытается получить innerHTML INPUT, когда он действительно хочет значение. – John Green 22 May 2011 в 07:15
  • 2
    Нет, я думаю, что он действительно хочет innerHTML INPUT, потому что он хочет, чтобы текст в его тексте поиска соответствовал меткам его переключателей. – tofutim 22 May 2011 в 07:24
  • 3
    хорошо, что работает. Мне все еще жаль, что я не знаю, почему innerHTML не работает, но я могу это сделать, установив id. – user052211 22 May 2011 в 07:30
  • 4
    Собственно, это все еще не решает проблему, потому что цель состоит в том, чтобы получить это. Вы бы хотели, чтобы это родитель. – tofutim 22 May 2011 в 07:31
  • 5
    Ok, label + this.parentNode + innerText. Я думаю, что теоретически Input не имеет innerHtml или innerText и что браузер делает его в & lt; label & gt; & lt; input / & gt; Label & lt; / label & gt; внутренне. – tofutim 22 May 2011 в 07:35

Если вам нужно значение входного тега, вы хотите использовать .value.

1
ответ дан user 17 August 2018 в 09:54
поделиться
  • 1
    Я не думаю, что он пытается получить значение тега, а скорее метку ввода. То есть, нажатие переключателей должно изменить его заголовок поиска на & quot; Enter Last Name & quot; или «Введите номер телефона». Использование значения даст вам «Введите последнее имя» и «Введите последнее имя». и «Введите номер телефона». – tofutim 22 May 2011 в 07:09
  • 2
    Если я использую .value, я получаю phonenumber или имя, которые являются значениями, которые я задал. Я пытаюсь получить доступ к тексту между & lt; input & gt; и & lt; / input & gt; – user052211 22 May 2011 в 07:18
Другие вопросы по тегам:

Похожие вопросы: