【发布时间】:2016-12-30 06:15:49
【问题描述】:
我们正在尝试为表单内的 Select 选项添加验证,它对第一个下拉字段工作正常,但验证不适用于 第二个下拉字段和 第三个多选复选框字段 .
意味着当我们点击提交按钮时,表单正在提交并且值正在保存在数据库中,而不关心第二和第三字段。
php
<form method="post" enctype='multipart/form-data' action="update.php" id="" onsubmit="return validate(); ">
Designer :
<select onchange="getOrderDetail(event);" name="designer_id" id="designer_id" required>
<option value="">Select Designer</option>
<?php
while($data = $stmt->fetch())
{
if($data['type']=="admin")continue;
?>
<option value="<?php echo $data['userID'];?>">
<?php
echo $data['name'];
?>
</option>
<?php } ?>
</select>
Order :
<div id="ordernumbers">
<select name="designerorder_id" id="designerorder_id" required>
<option>Select Order</option>
</select>
</div>
Product
<div id="productnumbers" name="dproduct_id" id="dproduct_id" required>
<select id="mySelect" >
<option>Select Products</option>
</select>
</div>
脚本
function validate()
{
var error="";
var designer_id = document.getElementById( "designer_id" );
if( designer_id.value == "" )
{
error = " Please Select Designer";
document.getElementById( "error_para1" ).innerHTML = error;
return false;
}
var error="";
var designerorder_id = document.getElementById( "designerorder_id" );
if( designerorder_id.value == "" )
{
error = " Please Select Order";
document.getElementById( "error_para2" ).innerHTML = error;
return false;
}
var error="";
var dproduct_id = document.getElementById( "dproduct_id" );
if( dproduct_id.value == "" )
{
error = " Please Select Product";
document.getElementById( "error_para3" ).innerHTML = error;
return false;
}
}
function getOrderDetail(e)
{
var designerId=e.target.options[e.target.selectedIndex].value;
var url="http://sbdev2.kidsdial.com:81/php/site6/designerpaidstatus.php?designer_id="+designerId+"&opration=2";
var request = jQuery.ajax( {
url: url ,
type: 'POST',
} );
request.done( function (result)
{
document.getElementById('ordernumbers').innerHTML =result;
} );
request.fail( function ( error )
{
console.dir(error);
} );
}
function getProductDetail(e)
{
var productId = $("#dproductselect option:selected").attr("class");
var finalstrig=productId.split(",");
var select='';
select+='<select class="test" multiple="multiple" name="dproduct_ids" id="dproduct_ids">';
for(i=0;i<finalstrig.length;i++)
{
if(finalstrig[i]!=0)
{
select +='<option value="'+finalstrig[i]+'">'+finalstrig[i]+'</option>';
}
}
select +='</select>';
document.getElementById('productnumbers').innerHTML =select;
(function($) {
$(function() {
$('.test').fSelect();
});
})(jQuery);
}
$(function(){
$("#button_reset").click(function() {
$("#productnumbers").html('<select id="mySelect"><option>Select Products</option></select>');
});
});
编辑 - Designerpaidstatus.php
$htmltext='';
$htmltext="<select id='dproductselect' name='designerorder_id' onchange='getProductDetail(this.value)'><option value=''>Select Order</option>";
foreach ($order as $orderData)
{
$orderitems=$orderData['dproduct_id'];
$finalValue=$orderData->getIncrementId()."-".$orderitemsarray[$k];
$htmltext=$htmltext.'<option class="'.$orderitems.'" name="'.$orderitems.'" value="'.$orderData->getIncrementId().'">'. $orderData->getIncrementId().'</option>';
}
$htmltext=$htmltext."</select>";
echo $htmltext;exit;
【问题讨论】:
-
在designerpaidstatus.php 上你要返回什么?它应该与选择框返回相同的 id
-
您好更改designerpaidstatus.php 选择框ID 和designerorder_id
-
@NishantSaini 我按照你的说法进行了更改,现在第二个字段
validation正在工作,但是对于第三个字段product,多选框不显示任何值。 -
等我检查一下
-
使用下面的代码验证多个选择框值
标签: javascript php forms validation