#javascript #html #ajax #forms #input
Вопрос:
У меня есть 2 формы в моем html-коде, но когда я нажимаю кнопку form2, отправляется значение form1
function chk() {
var text = document.getElementById('text').value;
console.log(text);
return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="form1">
<input type="text" id="text" value="Hi">
<input type="submit" id="submit1" onclick="return chk()">
<label for="submit1">Hi</label>
</form>
<form id="form2">
<input type="text" id="text" value="bonjour">
<button id="submit2" onclick="return chk()">btn</button>
<label for="submit2">bonjour</label>
</form>
Комментарии:
1. Чего вы пытаетесь достичь? Нажатие кнопки вызывает функцию, которая считывает и печатает значение ввода в первой форме. Если вы хотите отправлять только формы, создайте кнопки типа «отправить».
Ответ №1:
Идентификаторы должны быть уникальными на странице. Вместо этого вы можете использовать a name
для входных элементов.
function chk(formId) {
var text = document.getElementById(formId).querySelector('input[name=text]').value;
console.log(text);
return false;
}
<form id="form1">
<input type="text" name="text" value="Hi">
<input type="submit" id="submit1" onclick="return chk('form1')">
<label for="submit1">Hi</label>
</form>
<form id="form2">
<input type="text" name="text" value="bonjour">
<button id="submit2" onclick="return chk('form2')">btn</button>
<label for="submit2">bonjour</label>
</form>
Комментарии:
1. @lucax979 Рад помочь.
Ответ №2:
идентификатор «текст» используется в вашем коде дважды, что может привести к путанице, вам следует попробовать изменить его на «текст1» и «текст2» И использовать тот, который вам нужен в вашей функции.
Комментарии:
1. на самом деле это не «ведет к путанице», а неправильно. Идентификатор должен быть уникальным. Лучшим в этих случаях является то, что первый элемент с идентификатором dup принимается во внимание, а остальные просто игнорируются