我正在使用JQuery的bassistance验证插件。
要保持表单清除,我在无效字段后只放置一个字母作为Errormessage(例如“F”表示无效格式)。现在,我想通过单击字母为用户提供特殊div(#errordetails)中详细错误消息的选项。
$(".contactForm").validate({
rules ....
}),
...
我想放置类似的东西:
$("label.error").click(function() {
alert("The Errormessage was clicked ...");
})
我必须在哪里放置此代码?
编辑:对不起,我忘了写这个。在$(document).ready()中,事件不起作用。其他元素的点击事件工作正常,但不是$(“label.error”)的事件确定编辑第2部分:
验证后我的HTML:
<div class="formField cf">
<label for="contactGeburt">Geb.datum *
<span style="font-size: 10px; color: #999"> (dd.mm.jjjj)
</span>
</label>
<input type="text" maxlength="10" id="gebdatum" name="gebdatum" class="textField datum error">
<label for="gebdatum" generated="true" class="error">
<span class="errorvalue">P
</span>
</label>
这是JQUERY Part
$(document).ready(function(){
$(".contactForm").validate({
rules: {
gebdatum: {
required: true,
dateDE: true
}
},
}),
//This does not work
$(function() {
$("label.error").click(function() {
alert("The Errormessage was clicked ...");
});
});
// This works - H1 is also on the document ;-)
$(function() {
$("h1").click(function() {
alert("H1 was clicked ...");
});
});
});
编辑第3部分:
感谢您的支持:
我测试了(有效)代码,但它不起作用。我从低音开始了这个消息:
http://jquery.bassistance.de/validate/demo/
我粘贴了这个功能:
$("label").click(function() {
alert("The Label was clicked ...");
});
...并运行代码(控制台)。单击文本字段中的标签时,会显示alertmessage。单击“提交”按钮后,错误标签(红色)不会对事件做出反应,但输入字段的标签会显示警告框。
所以我再次从控制台运行代码(在屏幕上出现错误之后),现在显示了alterbox。
所以我认为,事件必须放在表单中的validate-event中,但我不知道正确的语法。
编辑第4部分:
以下是jsfiddle的链接,其中包含所有内容:http://jsfiddle.net/frank79/HVEXm/
感谢您的帮助!对不起那个可怜的英语......
答案 0 :(得分:2)
好的,我有解决方案:
$(".contactForm").delegate("label", 'click', function() {
alert("A Label was clicked....");
}).validate({
rules: {
gebdatum: {
required: true,
dateDE: true
}
}
})
调用click-Handler时,我的标签不存在。
感谢来自jquery-Forum的charlietfl,感谢JMAX为jsfiddle出场!
圣诞快乐!
谢
答案 1 :(得分:0)
您应该将代码放在jQuery文档就绪函数中,如下所示:
$(function() {
$("label.error").click(function() {
alert("The Errormessage was clicked ...");
});
});
答案 2 :(得分:0)
以下是您的原始代码:: http://jsfiddle.net/2EwUK/
JSLint
按钮时,网络应用程序会在您的代码中引发一些语法错误。$(function() { });
内使用多个$(document).ready()
,因为它是完全相同的代码以下是更新后的版本:http://jsfiddle.net/mwLWR/1/并且有效。感谢评论,我还添加了对验证插件的引用。
答案 3 :(得分:0)
.click()方法只能将函数绑定到调用方法时DOM中元素的click事件。
由于错误标签稍后会添加到DOM中,因此不会受到影响。
使用.live()或jQuery 1.7+ .on()方法。
$("label").live("click", function() {
alert("A Label was clicked....");
});