<label id="error_msg"></label>
现在,只要error_msg
另外,我想检查标签是否为空。如果标签为空,则不应发出警报。
我编写了代码,但它不能以某种方式工作
$("#error_msg").change(function () {
alert('hi');
});
帮帮我们。
答案 0 :(得分:1)
我还没有能够对此进行测试,但假设您使用JavaScript更改标签,则无法手动触发更改()
例如
$("#error_msg").text("hello").change();
答案 1 :(得分:0)
您需要监控标签的Dom更改。在http://james.padolsey.com/javascript/monitoring-dom-properties/
查看易于使用的jQuery插件如果您尝试验证,我强烈建议您使用验证插件http://bassistance.de/jquery-plugins/jquery-plugin-validation/
答案 2 :(得分:0)
jQuery change()
方法仅适用于某些元素,label
不是其中之一。
更改事件在其值更改时发送到元素。此事件仅限于输入元素,textarea框和选择元素。
答案 3 :(得分:0)
如果通过JavaScript更改元素的文本/值,则不会触发更改事件 - 只有在用户更改某些内容时才会触发更改事件(例如输入中的文本或所选项目中的内容)选择)。
如果您控制设置标签文本的代码,您可以编写一个自定义函数,既设置文本又运行“事件处理程序”,并在您想要更改#error_msg
时调用此函数s文:
function set_error_msg(txt)
{
$('#error_msg').text(txt);
if(txt)
{
//There's text in the label - show your alert...
}
}
但是如果更改来自其他地方(控制之外的代码),则必须启动一个循环,每隔XXX秒检查一次,以查看文本是否已更改 - 称为忙等待的过程,以及一般认为是坏事......
希望这有帮助!
答案 4 :(得分:0)
我认为,查询验证插件会自动更改错误标签。此外,我有以下脚本进行验证和错误放置。
$('#account').validate({
rules:{
username: {required: true},
password: {required: true},
email: {required: true, email: true},
fullname: {required: true}},
messages: {
username: "Category name is required",
password: "Password is required",
fullname: "Full Name is required",
email: "Valid email is required"
},
errorPlacement: function(error, element){
$(element).each(function (){
$(this).parent('td').find('p.error').html(error);
});
}})
html就像这样
<td><input type="text" name="username" value="<?php echo $user['username']; ?>" size="40"/>
<p class="error"></p>
</td>
现在,如果您打算 ALERT 错误消息,那么
errorPlacement: function(error, element){
var errors = new Array();
$(element).each(function (){
$(this).parent('td').find('p.error').html(error);
errors.push(error);
});
alert(errors.join(" "));
}