如果文本字段为空,则使用JavaScript应用CSS样式
Applying a CSS style using JavaScript if text field is empty
我在JavaScript中有这个函数,我在HTML代码中使用onclick事件调用它:
function checkTextField(field) {
if (field.value == '') {
sheet.insertRule("input:focus {background: #fc9fff;}", 1);
}
}
我已经检查了if语句是否通过在其中使用alert语句而不是insertrule来工作,但似乎应用了css,即使字段的值不是空的。还有什么我可以用的吗?
问题是,当使用空元素执行check方法时,您正在为input:focus
插入一个通用规则,当当前元素的焦点被移除时,该规则不会被移除。
更好的选择是使用类似的类
function checkTextField(field) {
if (field.value == '') {
field.classList.add('empty')
} else {
field.classList.remove('empty')
}
}
然后在样式表中
input.empty:focus {
background: #fc9fff;
}
您可以使用:required
和:invalid
选择器并在字段上设置所需的属性来实现纯CSS。
<style>
input:required:invalid { background: #fc9fff; }
</style>
<input name="email" required />
此处为实时版本:http://jsfiddle.net/devotis/z319pp1f/
我承认将所有必填字段都设为红色有点不友好。
我不确定我是否完全理解你的问题,但我已经创建了测试HTML文件,该测试有效:
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
<style></style>
<script>
var styleAlreadyAppended = false;
function checkTextField(field) {
var sheet = document.styleSheets[0];
if (field.value == '' && styleAlreadyAppended !== true) {
sheet.insertRule("input:focus {background: #f30;}", 0);
styleAlreadyAppended = true;
}
else if (field.value != '' && styleAlreadyAppended === true) {
sheet.deleteRule(0);
}
}
</script>
</head>
<body>
<div>
<input id="testinput" type="text" value="">
<button onclick="checkTextField(document.getElementById('testinput'))">test</button>
</div>
</body>
</html>
在FF36上测试。
也许更好的方法是将函数附加到onchange
事件上,如
<input type="text" onchange="checkTextField" />
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如果文本字段为空,则使用JavaScript应用CSS样式
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 如何远程检查JavaScript应用程序的函数调用堆栈
- Windows 8 Javascript应用程序XML对象
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- 如何使用原型继承编写一个整洁灵活的复杂javascript应用程序
- 我如何知道js文件之间的javascript应用程序代码流
- PHP文件没有't从Javascript应用程序获取$_POST
- 在Windows Metro风格的Javascript应用程序中读取文件内容
- 在前端javascript应用程序中使用DI容器有意义吗
- 仅将JavaScript应用于部分代码(例如菜单)
- 将一个主要网站转换为javascript应用程序
- 使用javascript应用视差效果时,图像会发生抖动
- 应该如何将密码从纯html/javascript应用程序发送到php页面
- JavaScript应用CSS3渐变
- 集成多个JavaScript应用程序
- 如何将 Javascript 应用于分组的 SharePoint 列表
- Windows 8 HTML5 JavaScript 应用程序中向左滑动的事件名称是什么
- 用于组织大型javascript应用程序的工具和最佳实践