Существует несколько блоков выбора и полей ввода. Я написал функцию, когда тело загружается. Моя функция проверяет значение поля выбора и отправляет шаблон на вход. Моя проблема заключается в том, что этот код повторит шаблон для всех полей, например. Если поле выбора «NS», оно будет повторять шаблон NS для всех входов. Вот мой сниппет:Проверка атрибута входов, не работающих более чем на один
$(function() {
var value= $('select[name=type]').val();
var pattern = $('select[name=type] option:selected').data('pattern');
$('input[name=hostInput]').attr('pattern', pattern);
$('input[name=hostInput]').val(value);
});
.to_validate:invalid {
color: navy;
outline: none;
border-color: #ff1050;
box-shadow: 0 0 10px #ff0000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<select name="type" class="minimal">
<option value="Record" hidden>Record</option>
<option value="NS" selected data-pattern="(?!\d+(?:\.\d+){3}$)(([a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])\.)*([A-Za-z\d]|[A-Za-z\d][A-Za-z\d-]*[A-Za-z\d])" data-placeholder="Hostname" data-title="Wrong host">NS</option>
<option value="MX" data-pattern="(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" data-placeholder="IP address" data-title="Wrong Ip Placeholder">MX </option>
</select>
<br/>
<input type="text" name="hostInput" placeholder="Hostname" class="to_validate" title="Wrong host"/>
<br/>
<br/>
<select name="type" class="minimal">
<option value="Record" hidden>Record</option>
<option value="NS" data-pattern="(?!\d+(?:\.\d+){3}$)(([a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])\.)*([A-Za-z\d]|[A-Za-z\d][A-Za-z\d-]*[A-Za-z\d])" data-placeholder="Hostname" data-title="Wrong host">NS</option>
<option value="MX" selected data-pattern="(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" data-placeholder="IP address" data-title="Wrong Ip Placeholder">MX </option>
</select>
<br/>
<input type="text" name="hostInput" placeholder="Hostname" class="to_validate" title="Wrong host"/>
<br/>
</form>
Если вы просто хотите, чтобы один вход заполнялся, тогда сделайте каждый атрибут name уникальным ex. 'hostInput1',' hostInput2' и т. д. – zer00ne
@ zer00ne мои поля поступают из базы данных, я не могу изменить имя каждого атрибута. – inaz