也许是一个愚蠢的问题,但我是jQuery的初学者,我正在尝试制作一个带有表单的灯箱。到目前为止一切顺利,但现在我想对创建的表单进行验证,但这就是问题所在。我通过以下方法创建表单:
$("a").click(function(){
if(this.rel == "box"){
$("body").append('').append('');
$("#shadowContent").append('Sluit venster - Your total price is €55,-').append('');
$("#closeBox").click(function(c) {
c.preventDefault();
$("#shadow").add($("#shadowContent"),$("#closeBox")).fadeOut(500);
});
$("#shadow").add($("#shadowContent")).fadeIn(500);
$("#shadowContent").show().css({'width':'750px','top':'25px','left':'50%','margin-left':'-400px'});
$("#content").load('http://www.domain.nl/tmp/make');
现在,当我尝试添加以下代码时,在上面的代码下面,表单提交,我没有收到所需的警报。
$("#reservationForm").submit(function(f){
f.preventDefault();
alert("Jawel");
});
我的表单看起来(简化)如下:
<form id="reservationForm"
>
<fieldset
>
<legend
>Legend</legend
>
...
</fieldset
>
<fieldset
>
<legend
>Legend</legend
>
...
</fieldset
>
<button type="submit"
>
</form
>
整个表单位于一个新文档(make.php)中,该文档通过jQuery加载到我的灯箱中。如何将验证应用于表单中的字段?我想把我的jQuery保存在一个文件中,所以如果我不必将验证放在make.php本身就好了。
答案 0 :(得分:1)
您可以将.live()
用于所需内容,例如:
$("#reservationForm").live("submit", function(f){
f.preventDefault();
alert("Jawel");
});
.live()
事件处理程序的工作略有不同,它们不在元素本身上(它为document
添加了一个处理程序),因此它可以在添加的 future 元素上工作通过向bubble up收听他们的活动来访问该页面,无论何时添加元素,事件都会以相同的方式冒泡。
答案 1 :(得分:0)
要将事件自动绑定到dom,您可以使用.live();
eg:
jQuery('.red').live('click',_functionDoSomething);
现在将来如果你添加更多带有class = red的元素,他们将有函数= _functionDoSomething alreday附加到他们