一直在尝试使用jquery和mobile,并发现我的表单验证在移动设备上的运行方式是95%(在桌面上很好)。我的意思是我的代码(下面)确实检查输入是否有值,如果没有则返回警报。如果他们都有价值,那么就提交。但是,当所有输入都有效时,我的提交按钮不起作用。
我认为可能是onsubmit ="返回false"在表单标签中,但删除它什么也没做。真的被这个难倒,并且会喜欢jquery专家的一些经验。 (我在网站上查看了其他问题,但似乎没有一个问题可以解决我的问题)
jquery代码如下,我把整个表单放在jsfiddle中。我想念的是什么,提前谢谢
http://jsfiddle.net/wgw3p9ee/1/
function vForm() {
$('#fSubmit').click(function () {
if (0 === $('#fname').val().length) {
alert('Please Enter Your First Name.');
} else if (0 === $('#lname').val().length) {
alert('Please Enter Your Last Name.');
} else if (0 === $('#address').val().length) {
alert('Please Enter Your Address.');
} else if (0 === $('#city').val().length) {
alert('Please Enter Your City.');
} else if (0 === $('#mailState').val().length) {
alert('Please Enter Your State.');
} else if (0 === $('#zip').val().length) {
alert('Please Enter Zipcode.');
} else if (0 === $('#email').val().length) {
alert('Please Enter Email.');
} else if (0 === $('#phone').val().length) {
alert('Please Enter Your Phone Number.');
} else {
$("form").submit();
}
});
}
答案 0 :(得分:0)
我看到一些松散的结束标签。
</h2>
</div>
<div class="liNav">
<input type="button" value="SUBMIT" id="fSubmit" onclick="vForm();" />
</form>
您可以用以下代码替换这些行:
<div class="liNav">
<input type="button" value="SUBMIT" id="fSubmit" onclick="vForm();" />
</div>
</form>
还有一个大问题:每次点击提交按钮,都会调用vForm()
。每次单击提交按钮时,vForm()
都会为提交按钮实例化一个单击处理程序 - 这就是您第一次单击提交时没有任何反应的原因。您只需要一个单击处理程序即可使工作正常,因此可以将function vform() {
位与onclick
元素的#fSubmit
属性一起删除。
这是我的意思working JSFiddle example。