我有一个包含3个表单的页面,每个表单都有唯一的ID。我也有两个脚本,一个应该用两个表单调用,但不是第三个,另一个只用第三个。我只能通过这样选择将脚本附加到第三个:
"/"
但是如何将其他脚本仅附加到第一个和第二个表单? 我试图将它附加到这样的所有形式:
$("#third_form")
但显然这也附加到$('form')
所以我虽然可以查看提交的表单
#third_form
但它没有用。 有什么想法吗?
答案 0 :(得分:2)
您可以使用逗号分隔符,
来传递多个选择器:
$('#first_form,#second_form')
希望这有帮助。
$('#first_form,#second_form').on('submit', function(){
alert('First or Second_form');
})
$('#third_form').on('submit', function(){
alert('Third form');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id='first_form'>
<input type='submit' value='First form submit'/>
</form>
<br/>
<form id='second_form'>
<input type='submit' value='Second form submit'/>
</form>
<br/>
<form id='third_form'>
<input type='submit' value='Third form submit'/>
</form>
答案 1 :(得分:1)
$('#first_form, #second_form')
答案 2 :(得分:1)
if($(form).attr('id') != 'third_form'){ ... }
$(&#39; form&#39;),你需要选择id值并将其与另一个选择器进行比较,而不是整个对象 - $(form)。
答案 3 :(得分:0)
var form = $(this);
if(form!='#third_form'){...}
但它不起作用。有什么想法吗?
因为form是一个jQuery对象,你想要将它与一个字符串进行比较。所以,你可以这样做:
if(this.id!='#third_form'){...}
您可以使用“event.target.id”或“this.id”,例如:
$(function () {
$('form').on('click', function(e) {
// or this.id
if (e.target.parentNode.id == 'third_form' || e.target.id == 'third_form') {
alert('third_form');
} else {
alert('one of the first two forms')
}
})
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<form id="first_form">
first_form<br>
First name:<br>
<input type="text" name="firstname"><br>
Last name:<br>
<input type="text" name="lastname">
</form>
<form id="second_form">
second_form<br>
First name:<br>
<input type="text" name="firstname"><br>
Last name:<br>
<input type="text" name="lastname">
</form>
<form id="third_form">
third_form<br>
First name:<br>
<input type="text" name="firstname"><br>
Last name:<br>
<input type="text" name="lastname">
</form>