我得到了一个基本的HTML表单,我通过jQuery验证,
这是表格:
<form method="post" action="index.php" enctype="multipart/form-data" id="add_product">
מק"ט:
<input type="text" name = "product_cn" value="<?php echo $product_cn;?>" id="cn"/> <span style="margin-right: 20px; color:red; display:none" id="cn_exist"></span>
<br /> <br />
שם המוצר:
<input type="text" name="product_name" value="<?php echo $product_name;?>" id="p_name"/>
<br /> <br />
פרטי המוצר:
<textarea rows = "6" cols = "30" name="product_details" id="p_details"> <?php echo $product_details;?></textarea>
<br /> <br />
מחיר:
<input type="text" name = "product_price" value="<?php echo $product_price;?>" id="p_price"/>
<br /> <br />
תמונה:
<input type="file" name="fileField" id="p_image" />
<br /> <br />
<input type="submit" name="submit" value="רשום מוצר" />
</form>
这是我的验证码:
$("form").submit(function(e){
e.preventDefault(e);
var p_cn = $("#cn").val();
var p_name = $("#p_name").val();
var p_details = $("#p_details").val();
var p_price = $("#p_price").val();
var p_image = $("#p_image").val();
error = "";
if(!(p_cn != "") || !(p_cn.length > 0)){
error += " אנא הוסף הוסף מק\"ט <br /> <br />" ;
}
if(!(p_name != "") || !(p_name.length > 0)){
error += "אנא הזן שם מוצר <br /> <br />";
}
if(!(p_price != "") || !(p_name.length > 0)){
error += " אנא הזמן מחיר. <br /> <br />";
}
if(error != ""){
$("#form_errors").html(error).hide().slideDown(500);
}else{
$("#form_errors").slideUp(500);
$("#add_product").submit();
}
});
请忽略任何你不理解的角色,这是我的语言。
正如您所看到的,我所做的是阻止提交表单,我不得不使用选择器“表单”或其他方式,它只是因为某些原因而无法工作&gt; _&lt;。因此,我尝试使用选择器“form”并且它有效。
现在,正如您在上一个IF条件中所看到的,如果变量“error”为空,我想提交表单,但表单不提交。我想知道如何提交表格: - )
提前致谢!
答案 0 :(得分:2)
e.preventDefault(e);
(应该只是e.preventDefault();
)会停止提交。你需要有条件地做到这一点:
if (error) {
e.preventDefault();
} else {
// No need to prevent the submit
}
答案 1 :(得分:1)
e.preventDefault()
的目的是停止元素的默认操作。在form.submit()中,它会阻止提交表单。
Here is a detailed explanation
将preventDefault()移到此处:
if(error != ""){
$("#form_errors").html(error).hide().slideDown(500);
e.preventDefault(); //do NOT want it to submit if there are errors
}else{
$("#form_errors").slideUp(500);
$("#add_product").submit();
}