我面临的问题是,如果有多行,则javascript验证无效。为什么不验证何时有多行?
的Javascript
function mstatusvalidate()
{
if(document.mstatus.mealstatus.value == "empty")
{
alert("Meal status field should not be empty.");
document.mstatus.mealstatus.focus();
return false;
}
return true;
}
PHP 和 HTML
if( mysql_result($m_result, $i, 'ActiveStatus') != 'empty' )
{
if( mysql_result($m_result, $i, 'ActiveStatus') == 'Y' )
{
echo "<td class=green >Active</td>";
}
else if( mysql_result($m_result, $i, 'ActiveStatus') == 'N' )
{
echo "<td class=red >Inactive</td>";
}
}
else
{
echo "<td><form name=mstatus method=post onsubmit=return(mstatusvalidate()); action='voucherstatus_update.php?id_meal= " . mysql_result($m_result, $i, 'MealPlanID') . "'><select name=mealstatus><option value=empty></option><option value=active>Active</option><option value=inactive>Inactive</option></select><input type=submit class=update_status title=\"Update " . mysql_result($result, $i, 'GuestName') . " meals status\" value=Update></form></td>";
}
html组合框形式的图像
答案 0 :(得分:1)
你走了:
<强>的JavaScript 强>:
function mstatusvalidate(f)
{
if(f.mealstatus.value == "empty")
{
alert("Meal status field should not be empty.");
f.mealstatus.focus();
return false;
}
return true;
}
<强> PHP 强>:
echo "<td><form method=post onsubmit=\"return mstatusvalidate(this)\"; action='voucherstatus_update.php?id_meal= " . mysql_result($m_result, $i, 'MealPlanID') . "'><select name=mealstatus><option value=empty></option><option value=active>Active</option><option value=inactive>Inactive</option></select><input type=submit class=update_status title=\"Update " . mysql_result($result, $i, 'GuestName') . " meals status\" value=Update></form></td>";
答案 1 :(得分:0)
我怀疑你有几个同名的选择。如果您通过http发送表单,这是一个问题。如果您通过javascript收集数据,然后通过ajax将它们发送到服务器,这应该可以。
在后一种情况下,您必须更改方法以收集select for test。以下代码是概念证明,它仅适用于最新的浏览器,但应该是解决方案的良好起点。
function mstatusvalidate()
{
var collection = document.querySelectorAll("select[name=mealstatus]");
for(var i=0; i< collection.length; i++) {
if (collection[i].value === "empty") {
alert("Meal status field should not be empty.");
collection[i].focus();
return false;
}
}
return true;
}