我有一个包含div的页面,每个div包含1个按钮,每个按钮提交成功执行某个功能。
但是我目前正试图通过ID隔离按钮并触发在div中的2个点(输入值和#msgsC)中添加类和消息。
然而,该事件根本没有触发。我想我可能会遗漏一些东西。我怎样才能让它更改/添加类和消息只到被点击的特定按钮的兄弟输入标签和#msgsC(而不是同时在页面上所有div中的所有输入)?
<form id="Hello" target="somePlace" action="#" method="post">
<table>
<tr>
<td>
<select name="os0">
<option value="item1">item1</option>
<option value="item2">item2</option>
<option value="item3">item3</option>
<option value="item1">item4</option>
</select>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="on1" value="Send My URL"/>Send My URL
</td>
</tr>
<tr>
<td>
<input type="text" value="http://" name="os1" id="os1" maxlength="200"/>
</td>
</tr>
</table>
<button alt="Click the button" id="purchase1" name="submit" class="btn" type="image">Add To Cart</button>
</form>
$(document).ready(function () {
$('#purchase1, #purchase2, #purchase3').on('click', 'button', function (e) {
var urlGo = new Array(url1, url2, url3);
for (var x = 0; x < urlGo.length; x++) {
if (!/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(urlGo[x].val())) {
$(this).siblings("input[type=text]").addClass("errorAlert");
$(this).siblings("input[type=text]").val(emptyerror);
$(this).siblings("#msgsC").addClass("text-error");
$(this).siblings("#msgsC").html(htmlEmpty);
} //end of if
} //end of for
}); // end of purchase button function
}); // end document ready
答案 0 :(得分:2)
.
指的是一个类#
到id。
.purchase
选择购买类的元素,#purchase
选择购买ID的元素。
使用
$('#purchase1, #purchase2, #purchase3').on(...
因为purchase1,purchase2,purchase3是ids。
如果您只对点击感兴趣并且这些元素已加载一次而未被替换或删除,您也可以使用,
$('#purchase1, #purchase2, #purchase3').click(function(){..
你也可以给他们一个共同的课程,“购买”。
然后使用,
$('.purchase').click(function(){ ....});
但请记住,id是独一无二的。