我无法提交表单,提交的alert ($('#submit').val());
中的else
出现,因此代码进入了正确的位置,但表单未提交。
表单有一个其他名称的id,提交按钮被称为名称和一点保存的ID,目前都设置为提交。
任何帮助表示感谢。
$(document).ready(function(){
// force content into cnamex
$('#submit').click(function(event){
event.preventDefault(); // prevent submit
error = '';
for ( var i = 0; i < 10; i++ ) {
if ($('#cname' + i).length > 0) {
if ($('#cname' + i).val().length == 0) {
error = 'Names for those attending are required';
}
}
}
if (error != '') {
alert (error);
}
else {
$('#othernames').submit();
alert ($('#submit').val());
}
});
});
HTML是PHP生成的,这是它的一个版本,没有任何框验证
<form enctype="multipart/form-data" name="othernames" id="othernames" method="post" action="" target="_self">
<div class="table">
<table width="100%" border="0">
<tr>
<td colspan="3" ><input name="submit" id="submit" type="submit" value="Confirm Order" ></td>
</tr>
</table>
</div>
</form>
这是要验证的字段: -
<form enctype="multipart/form-data" name="othernames" id="othernames" method="post" action="" target="_self">
<div class="table">
<table width="100%" border="0"><caption>Enter names for tickets, (if any)</caption>
<tr>
<th scope="col">Name</th>
<th scope="col">Email (Optional)</th>
<th scope="col">Club</th>
</tr><tr><td><input name="cID[]" type="hidden" value="11"><input name="cname[]" id ="cname0" type="text" size="15" maxlength="20"></td>
<td><input name="cemail[]" id="cemail0" type="text" size="15" maxlength="60"></td><td><input name="cclub[]" type="text" size="15" maxlength="25" value="VRA - United Kingdom"></td></tr><tr><td><input name="cID[]" type="hidden" value="11"><input name="cname[]" id="cname1" type="text" size="15" maxlength="20"></td>
<td><input name="cemail[]" id="cemail1" type="text" size="15" maxlength="60"></td><td><input name="cclub[]" type="text" size="15" maxlength="25" value="VRA - United Kingdom"></td></tr>
<tr>
<td colspan="3" ><input name="submit" id="submit" type="submit" value="Confirm Order" ></td>
</tr>
</table>
</div>
</form>
使用reyaner的建议解决问题,谢谢。 JQuery现在读取,而html使用提交按钮
$(document).ready(function(){
// force content into cnamex
$('#submit').click(function(event){
error = '';
for ( var i = 0; i < 10; i++ ) {
if ($('#cname' + i).length > 0) {
if ($('#cname' + i).val().length == 0) {
event.preventDefault(); // prevent submit
error = 'Names for those attending are required';
}
}
}
if (error != '') {
alert (error);
}
});
});
enter code here
答案 0 :(得分:1)
试试这个:
<form action='#' method='post' onSubmit='return validate()'>...</form>
然后$('#submit')。点击更改为功能validate(){...},删除.preventDefault(),finnaly成功返回true,否则返回false。
function validate(){
error = '';
for ( var i = 0; i < 10; i++ ) {
if ($('#cname' + i).length > 0) {
if ($('#cname' + i).val().length == 0) {
error = 'Names for those attending are required';
}
}
}
if (error != '') {
alert (error);
return false;
}
else {
//$('#othernames').submit();
alert ($('#submit').val());
return true;
}
});
答案 1 :(得分:1)
Justinas Jurciukonis的答案可能会奏效,但这是我要进行的最终代码,因为它更短。如果PHP已创建它们,则检查0到10个可能的字段,如果它们是空白则提醒并阻止提交,为了我的目的,这是足够的验证但当然你可以添加更多内部if,并且还比警报框更有创意。
$('#submit').click(function(event){
for ( var i = 0; i < 10; i++ ) {
if ($('#cname' + i).length > 0) {
if ($('#cname' + i).val().length == 0) {
event.preventDefault(); // prevent submit
alert('Names for those attending are required');
}
}
}
});
根据需要由PHP循环生成的html
<tr>
<td><input name="cname[]" id="cname0" type="text"></td>
</tr>
<tr>
<td><input name="cname[]" id="cname1" type="text"></td>
</tr>
<input name="submit" id="submit" type="submit" value="Confirm Order" >