我有一个使用php动态创建的表格。
表单名称是使用php $ formcount变量创建的,并使用while循环递增。因此,对于创建的多个表单,表单名称将为: UPDATE1 UPDATE2 update3等等。
我在每个表单中都有一个需要验证的下拉菜单。我无法成功使用JavaScript来单独验证每个表单,因为表单的名称每次都在不断变化。
$formcount=0;
while($info=mysql_fetch_array($agent_q))
{
......
echo('
<form name="update'.$formcount.'" method="post" onsubmit="return CheckUpdate(this);">
<select name="login_time" id="login_time">
<option value="none">Select Login</option>
<option value="00:30">00:30</option>
<option value="02:30">02:30</option>
<option value="03:30">03:30</option>
<option value="04:30">04:30</option>
<option value="06:30">06:30</option>
<option value="09:30">09:30</option>
<option value="12:30">12:30</option>
<option value="13:30">13:30</option>
<option value="16:30">16:30</option>
<option value="17:30">17:30</option>
<option value="18:30">18:30</option>
<option value="19:30">19:30</option>
<option value="20:30">20:30</option>
<option value="21:30">21:30</option>
<option value="22:30">22:30</option>
</select></form>');
.....
}
我的JS是
function CheckUpdate(){
if(document.????==0){
alert("Select Login Time!\r\n");
return false;
}
else
return true;
}
不知道该代替什么?我相信这是相当容易的......任何帮助都非常感谢。谢谢!
答案 0 :(得分:1)
有几种方法可以解决它。可能最直接的(无需修改现有的PHP)将使用form.elements
集合。在您的情况下,<select>
将为elements[0]
// The form node is passed in the function call as (this)
function CheckUpdate(node){
// The first form element in the form node passed to the function is the <select>
// Test that a value other than the default is selected...
if (node.elements[0].value == 'none'){
alert("Select Login Time!\r\n");
return false;
}
else return true;
}
还有其他方法可以解决这个问题。例如,如果<select>
中只有一个<form>
,但它不一定位于第一个位置[0]
,您可以使用getElementsByTagName()
将其检索为当前<form>
function CheckUpdate(node){
var selNodes = node.getElementsByTagName('select');
// Check the value of the first <select> child of the <form> (which was passed as node)
if (selNodes[0].value == 'none'){
alert("Select Login Time!\r\n");
return false;
}
else return true;
}
注意:在PHP循环中,您复制 <select>
id属性。这是不允许的 - id属性应该是唯一的。您可以附加$formcount
。
echo '
<form name="update'.$formcount.'" method="post" onsubmit="return CheckUpdate(this);">
<select name="login_time" id="login_time' . $formcount . '">
...;
答案 1 :(得分:0)
试试这个
<form name="update'.$formcount.'" id="update'.$formcount.'" method="post" onsubmit="return CheckUpdate(this);">
function CheckUpdate(form){
if(document.form.login_time.value == 0){
alert("Select Login Time!\r\n");
return false;
}
else
return true;
}