在 javascript 中更改边框颜色时出现问题
Issues changing border color in javascript
我正在提交一个表单,它有验证以确保我的文本框有一个值。如果 false
,警报显示正常,但我无法让边框更改颜色。我似乎无法找出我做错了什么。
<script>
function validate(){
var dob = document.forms["ppm"]["dob"].value;
if(dob == ""){
document.getElementById("dob").style.border="red";
alert("Error");
return false;
}
}
</script>
<form onsubmit="return validate()" name="ppm" id="ppm" action="index.php" method="post">
<p>What is your DOB<br />
<input type="text" name="dob" id="dob" value="" />
<input type="submit" name="Continue" value="Continue"/>
</form>
您必须给边框一定的宽度才能显示它。您可以为此使用单独的 border*
属性:
document.getElementById("dob").style.borderColor ="red";
document.getElementById("dob").style.borderWidth ="2px";
或者,坚持使用 border
但提供完整的边框值(宽度、样式和颜色):
document.getElementById("dob").style.border = "2px solid red";
这是一个对您的原始示例稍作修改的工作示例:
function validate() {
var dob = document.getElementById('dob').value;
if (dob == null || dob == '') {
document.getElementById("dob").style.border = "2px solid red";
alert("Error");
return false;
}
}
<p>What is your DOB
<br />
<input type="text" name="dob" id="dob" value="" />
<input type="button" onclick="validate()" name="Continue" value="Continue" />
我很想把你的 validate
函数重写成这样:
function validate() {
var dobEl = document.getElementById('dob'); // only get it once
if (!(dobEl.value || '').length)) { // if null or empty
dobEl.style.border = "2px solid red"; // set the style
alert("Error");
return false; // don't submit the form
} else {
// set the border back to normal
}
return true; // do submit the form
}
您的段落缺少结束标记 (</p>
)。使用style.border
时还需要设置边框的所有部分属性。下面是一个工作示例。
var isValid = function () {
var dob = document.forms["ppm"]["dob"].value;
if (dob === "") {
document.getElementById("dob").style.border = "solid 1px red";
alert("Error");
return false;
}
return true;
};
<form onsubmit="return isValid();" name="ppm" id="ppm" action="index.php" method="post">
<p>What is your DOB</p>
<br />
<input type="text" name="dob" id="dob" value="" />
<input type="submit" name="Continue" value="Continue" />
</form>
我正在提交一个表单,它有验证以确保我的文本框有一个值。如果 false
,警报显示正常,但我无法让边框更改颜色。我似乎无法找出我做错了什么。
<script>
function validate(){
var dob = document.forms["ppm"]["dob"].value;
if(dob == ""){
document.getElementById("dob").style.border="red";
alert("Error");
return false;
}
}
</script>
<form onsubmit="return validate()" name="ppm" id="ppm" action="index.php" method="post">
<p>What is your DOB<br />
<input type="text" name="dob" id="dob" value="" />
<input type="submit" name="Continue" value="Continue"/>
</form>
您必须给边框一定的宽度才能显示它。您可以为此使用单独的 border*
属性:
document.getElementById("dob").style.borderColor ="red";
document.getElementById("dob").style.borderWidth ="2px";
或者,坚持使用 border
但提供完整的边框值(宽度、样式和颜色):
document.getElementById("dob").style.border = "2px solid red";
这是一个对您的原始示例稍作修改的工作示例:
function validate() {
var dob = document.getElementById('dob').value;
if (dob == null || dob == '') {
document.getElementById("dob").style.border = "2px solid red";
alert("Error");
return false;
}
}
<p>What is your DOB
<br />
<input type="text" name="dob" id="dob" value="" />
<input type="button" onclick="validate()" name="Continue" value="Continue" />
我很想把你的 validate
函数重写成这样:
function validate() {
var dobEl = document.getElementById('dob'); // only get it once
if (!(dobEl.value || '').length)) { // if null or empty
dobEl.style.border = "2px solid red"; // set the style
alert("Error");
return false; // don't submit the form
} else {
// set the border back to normal
}
return true; // do submit the form
}
您的段落缺少结束标记 (</p>
)。使用style.border
时还需要设置边框的所有部分属性。下面是一个工作示例。
var isValid = function () {
var dob = document.forms["ppm"]["dob"].value;
if (dob === "") {
document.getElementById("dob").style.border = "solid 1px red";
alert("Error");
return false;
}
return true;
};
<form onsubmit="return isValid();" name="ppm" id="ppm" action="index.php" method="post">
<p>What is your DOB</p>
<br />
<input type="text" name="dob" id="dob" value="" />
<input type="submit" name="Continue" value="Continue" />
</form>