我在网站上的表单中添加了一些Javascript验证。该站点连接到数据库就好了,但是当您单击提交按钮时,不会执行任何操作。
这是位于页面页脚中的表单:
<div id="add_restaurant" class="full-shadow">
<h4>Add a Restaurant</h4>
<form name="submitForm" action="<?php echo $pageName ?>" method="POST">
<ul class="radio_list" id="category">
<li>Category:</li>
<li><label class="radiobtn"><input name="category" type="radio" value="healthy" id="is_healthy" checked="checked"/>Healthy</label></li>
<li><label class="radiobtn"><input name="category" type="radio" value="unhealthy" id="is_unhealthy"/>Unhealthy</label></li>
</ul>
<br />
<label>Name:</label> <input name="rest_name" id="rest_name" type="text" autocomplete="off"/>
<input id="submit" type="submit" name="submit" value="Submit">
</form>
<p id="add_thanks"></p>
</div>
我认为这个问题很简单我看起来很过分。有人可以帮忙吗?
编辑:我发现问题出在我的JS验证中:
$('#submit').off('click').on('click', function(){
if($('#rest_name').val() === ""){
$('#add_thanks').html("Please type in a restaurant name.");
}
return false;
});
如果我禁用此代码,我的表单就可以了。导致此JavaScript代码出现问题的原因是什么?
答案 0 :(得分:2)
您没有打印$ pageName:
<form name="submitForm" action="<?php echo $pageName ?>" method="POST">
答案 1 :(得分:1)
您的JavaScript验证正在取消每次点击,而不仅仅是在出现错误时。
$('#submit').off('click').on('click', function(){
if($('#rest_name').val() === ""){
$('#add_thanks').html("Please type in a restaurant name.");
return false; //<-- add this
}
//return false; <-- remove this
});
答案 2 :(得分:0)
两个地方,第一个是在表单的action部分打印$ pageName,第二个是在action页面中定义$ submit。
答案 3 :(得分:0)
这就是你写的
<form name="submitForm" action="<?php $pageName ?>" method="POST">
您需要打印$pageName
变量。
<form name="submitForm" action="<?php print($pageName); ?>" method="POST">
答案 4 :(得分:0)
看起来很傻。但试试这个:
删除所有脚本。只需在onclick事件中运行以下行。
$("form").submit();
您的表单将不会提交。
重命名按钮的“id”和“name”:
<input id="btnSubmit" type="submit" name="btnSubmit" value="Submit">
删除所有脚本。只需在onclick事件中运行以下行。
$("form").submit();
您的表格将会提交。
“你不应该使用'submit'作为你的id和名字”