我在PHP中有一个表单,它有下拉列表和一个textboxt,它显示和隐藏下拉列表值的基础。我做了这个节目并使用javascript隐藏。
我的问题是,如果文本框变得可见,我想强制显示该文本框,如果用户将文本框留空,则会出现错误。
我使用preg_match
进行了表单验证,但是如何根据下拉列表选择的值执行条件强制执行?
修改
这是我在js中的show / hide feild
<script type="text/javascript">
function showfield(name){
if(name != 'High School')
document.getElementById('div1').style.display="block";
else
document.getElementById('div1').style.display="none";
}
function hidefield() {
document.getElementById('div1').style.display='none';
}
</script>
这是我的php验证
if(preg_match("/^[A-Z][a-zA-Z ]+$|\p{Arabic}/u", $_POST["name"]) === 0)
$errname = '<p class="errText">Please enter your full name </p>';'
答案 0 :(得分:1)
PHP中缺少的是检查下拉值。在您的HTML中,您有一个名称为 name 的文本字段,您正在检查它,但您也有一个select元素 - 我不知道名称。在PHP检查名称为空时,首先检查下拉列表设置的值。所以它会像
if($_POST['dropdown'] != 'highschool' &&
preg_match("/^[A-Z][a-zA-Z ]+$|\p{Arabic}/u", $_POST["name"]) === 0)
{
$errname = '<p class="errText">Please enter your full name </p>';
}
答案 1 :(得分:0)
最好提出一个javascript客户端脚本。
提交调用javascript函数validate()
<form name="xxx" method="get" onsubmit="validate()">
在javascript函数validate(),
中<script type="text/javascript">
function validate(){
var schoolname=document.getElementById("schoolName");
var yearofpassing=document.getElementById("yop");
if(isEmpty(schoolname)){
alert("schoolname is mandatory");
document.getElementById("schoolname").value="Please Enter School Name";
document.getElementById("schoolname").focus();
return false;
} // Similarly Give Validation for Year of Passing field
此外,如果您需要文本字段中的特定模式,请使用Javascript match()函数Click Here作为参考&amp;使用
return true;
}
</script>
身体部位
<body>
<form name="input" action="processinput.php" method="get">
<div id="div1">
School Name :<input type="text" id="schoolname"> <br>
Year of Passing : <input type="text" id="yop"><br>
</div>
<div id="div2">
CODE
<div>
</form>
</body>