【发布时间】:2013-09-03 15:40:43
【问题描述】:
我有一个充满 div 的页面,每个 div 包含一个按钮,每个按钮提交以成功执行某个功能。
但是,我目前正在尝试通过 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
【问题讨论】:
-
没有类
purchase1、2或3的元素 -
#表示一个 ID,.表示一个类。将您的选择器更改为$('#purchase1, #purchase2, #purchase3')并删除'button',因为它们是按钮
标签: jquery function events siblings