如何通过javascript检查css的状态
我有一个JavaScript文件来验证文本框是否已填写。 我想让它,如果所有的文本框都填写正确,它应该继续到下一页或任何情况下。(就我而言,只是为了显示一个警告消息框。)如果您能尽快回答,我将不胜感激。提前谢谢 HTML如何通过javascript检查css的状态,javascript,html,Javascript,Html,我有一个JavaScript文件来验证文本框是否已填写。 我想让它,如果所有的文本框都填写正确,它应该继续到下一页或任何情况下。(就我而言,只是为了显示一个警告消息框。)如果您能尽快回答,我将不胜感激。提前谢谢 HTML <form name="form" onSubmit="return validate()" method="post"> <p> <label class="tittle">Name:</label>
<form name="form" onSubmit="return validate()" method="post">
<p>
<label class="tittle">Name:</label>
<span>
<input type="text" name="firstname"
placeholder="First Name" class="info"
size="25" maxlength="25"
onBlur="return validateFirstName()">
<label class="fillerror" id="fillFirst">
First name is required
</label>
</span>
<span>
<input type="text" name="lastname"
placeholder="Last Name" class="info"
size="25" maxlength="25"
onBlur="return validateLastName()">
<label class="fillerror" id="fillLast">
Last name is required
</label>
</span>
</p>
<p>
<input type="button" name="register"
value="Register" class="register"
onClick="return validateFirstName(),
validateLastName(), allValidated();">
</p>
</form>
}
这是我需要帮助的函数,这里的所有其他代码只是为了了解最后一句话:
function allValidated()
{
var allrGood = document.getElementsByClassName("fillerror");
if (allrGood.style.display="none" == true)
{
alert("They're all good");
}
else if (allrGood.style.display="block" == true)
{
alert("Something is displayed 'block'");
}
}
如果它不适用于“If”语句,那么它可能适用于“for”或“while”语句(循环语句),然后请告诉我。首先,我真的建议您开始使用jQuery。这会让事情变得很容易 这是一个纯JS解决方案-
ctrlValid
,否则添加另一个类-
ctrlInvalid
ctrlInvalid
var blIsFormValid = true;
for(var i =0; i < allrGood.length; ++i)
{
if(allrGood[i].style.display != 'none')
{
blIsFormValid = false;
break;
}
}
if(blIsFormValid)
{
// Redirect check - http://stackoverflow.com/a/4745622/903324
window.location = "http://www.yoururl.com";
}
else
{
// Show message...
}
var blIsFormValid=true;
对于(变量i=0;i
代码的一个问题是文档。GetElementsByCassName()
返回元素数组,而不仅仅是一个元素。所以,allrGood.style
没有什么意义
另外,allrGood.style.display=“none”
将“none”
分配给allrGood.style.display
,而不是比较它们。记住使用=
进行松散比较,或使用==
进行严格比较
使用jQuery,您可以迭代类fillerror
的每个标签,并检查它是否可见,如下所示:
function areTheyAllValidated() {
var valid = true;
$('label.fillerror').each(function(index, element) {
if ($(element).is(":visible"))
valid = false;
});
return valid;
}
你必须在你的警报控件上弹出一个类或ID,这样你就可以给它设置样式了 像下面这样的事情应该会让你走上正轨。随着另一个钟声和口哨的下垂
'SuperCool': function() {
var sName = document.getElementById('ip1').value;
Alert.SuperCool( "Thank you "+sName+". Could be expanded to do something a little more clever" );
}
示例警报样式
这是一个很好的答案,但是我如何做第二个if语句呢?如果(blIsFormValid){//Redirect}@user2356557,则再次更新答案。。for循环的要点是,我们正在获取所有
fillerror
div,并检查它们是否显示。如果其中有一个显示出来,那就意味着有一个错误。非常感谢!!终于成功了!!没有你就做不到。
'SuperCool': function() {
var sName = document.getElementById('ip1').value;
Alert.SuperCool( "Thank you "+sName+". Could be expanded to do something a little more clever" );
}
.SuperCool {
background: red;
width: 200px;
height: 100px;
}