【求助】如何先使按钮失效,判断input输入内容有效后,再使按钮生效
时间:2009-03-21
来源:互联网
参考网上和书上的代码,自己写了一个,如下:
html文件:
<form action="" method="POST">
<div id="aaa">
<label>content</label><input class="required" type="text"><span class="mark">*</span>
</div>
<div id="btn">
Next
</div>
</form>
css文件:
#btn {
width: 50px;
padding: 1px;
background-color: #BFBFBF;
border: 3px solid;
text-align: center;
color: #555;
}
.mark {
color: red;
}
.warning {
background-color: red;
color: #fff;
}
.error-message {
margin-left: 10px;
color: #fff;
font-weight: bold;
}
.valid {
background-color: blue;
}
js文件:
$(document).ready(function() {
$('input').blur(function() {
$(this).parents('#aaa').removeClass('warning').find('.error-message').remove();
$('div#btn').addClass('valid');
if ($(this).is('.required')) {
var $listItem = $(this).parents('#aaa');
if (this.value == '') {
var errorMessage = 'This is a required field';
$('<span></span>').addClass('error-message').text(errorMessage).appendTo($listItem);
$listItem.addClass('warning');
};
};
});
});
其他的都没有什么问题,就是对在输入内容后为按钮添加一个新类的操作不行,按钮的状态始终没有变化,不知道是什么原因?请大家多多指点!!
html文件:
<form action="" method="POST">
<div id="aaa">
<label>content</label><input class="required" type="text"><span class="mark">*</span>
</div>
<div id="btn">
Next
</div>
</form>
css文件:
#btn {
width: 50px;
padding: 1px;
background-color: #BFBFBF;
border: 3px solid;
text-align: center;
color: #555;
}
.mark {
color: red;
}
.warning {
background-color: red;
color: #fff;
}
.error-message {
margin-left: 10px;
color: #fff;
font-weight: bold;
}
.valid {
background-color: blue;
}
js文件:
$(document).ready(function() {
$('input').blur(function() {
$(this).parents('#aaa').removeClass('warning').find('.error-message').remove();
$('div#btn').addClass('valid');
if ($(this).is('.required')) {
var $listItem = $(this).parents('#aaa');
if (this.value == '') {
var errorMessage = 'This is a required field';
$('<span></span>').addClass('error-message').text(errorMessage).appendTo($listItem);
$listItem.addClass('warning');
};
};
});
});
其他的都没有什么问题,就是对在输入内容后为按钮添加一个新类的操作不行,按钮的状态始终没有变化,不知道是什么原因?请大家多多指点!!
作者: horontu 发布时间: 2009-03-21
又测试了一下,发现其实设置已经执行了,但是由于原来的#id设置了背景色,所以,再次设置背景色的时候没有显示出来,还是显示原来的效果,如果将原来#id的背景色设置为白色,就看出效果来了,这是什么问题呢?该如何解决呢?
谢谢!!
谢谢!!
作者: horontu 发布时间: 2009-03-21
自己又试了一下,已经可以实现了……
使用了removeAttr(),先移除,再添加,但是要先引入一个类……
觉得这个方法比较笨,不知道是否还有更好的方法,还请大家多多指点!!
谢谢!!
使用了removeAttr(),先移除,再添加,但是要先引入一个类……
觉得这个方法比较笨,不知道是否还有更好的方法,还请大家多多指点!!
谢谢!!
作者: horontu 发布时间: 2009-03-21
没有笨办法,只有有效的办法。
在当前阶段,能尽自己所能实现效果是最好的状态~
如果一定要设置背景色,先用一个和warning同等级的class设置就行了。也就是所说的加一个类。
这样通过addClass和removeClass就能实现了。
在当前阶段,能尽自己所能实现效果是最好的状态~
如果一定要设置背景色,先用一个和warning同等级的class设置就行了。也就是所说的加一个类。
这样通过addClass和removeClass就能实现了。
作者: shawphy 发布时间: 2009-03-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28