Javascript 表单验证保持清除字段
在尝试插入MySQL数据库之前,我尝试使用jQuery验证文本字段是否为空 因此,在我添加if条件以检查字段是否为空之前,insert工作正常,如果两个字段都为空而不是一个字段,则insert将失败。我添加了IF条件,它总是清除字段并失败保存,即使两个文本字段都已填写 我尝试了几种不同的方法,包括Javascript 表单验证保持清除字段,javascript,jquery,Javascript,Jquery,在尝试插入MySQL数据库之前,我尝试使用jQuery验证文本字段是否为空 因此,在我添加if条件以检查字段是否为空之前,insert工作正常,如果两个字段都为空而不是一个字段,则insert将失败。我添加了IF条件,它总是清除字段并失败保存,即使两个文本字段都已填写 我尝试了几种不同的方法,包括.val()==”,以及.length==0。不知道为什么它总是清除所有字段。任何帮助都将不胜感激 JavaScript文件: $("#sub").click( function() { //Che
.val()==”
,以及.length==0
。不知道为什么它总是清除所有字段。任何帮助都将不胜感激
JavaScript文件:
$("#sub").click( function() {
//Check to see that no fields are left blank if one is all fields are cleared and save is failed from insert.php
if ($("#name").val()==""){
clearInputs();
return false;
}
else if($("#comment").val()==""){
clearInputs();
return false;
}
else{
//save the fields into an array and post to the result span then clear inputs
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info){ $("#result").html(info);
});
clearInput();
}
});
$("#myForm").submit( function() {
return false;
});
function clearInput() {
$("#name").val('');
$("#comment").val('');
}
不知道如果其中一个输入为空,为什么要清除这两个输入,而不是只是弹出一条消息,但下面是如何做到的:
var inputs = $('#name, #comment'),
form = $("#myForm");
form.on('submit', function(e) {
e.preventDefault();
var valid = inputs.filter(function() {
return $.trim(this.value).length;
}).length === inputs.length; // all inputs have a value
if (valid) {
$.post( form.attr("action"), form.serialize(), function(info){
$("#result").html(info);
});
}else{
inputs.val('');
}
});
我从noob(我)的角度给出这个“答案”。我在我的一些作品中使用了这种风格。它显然没有阿迪内奥的优雅
这是一把小提琴
HTML
JS
$('clickme')。单击(函数(){
var nametext=$('#name').val();
var commenttext=$('#comment').val();
if(nametext.length<1 | | commenttext.length<1)
{
警报(“两个字段都需要文本”);
$(':input').val('');
}
其他的
{
警报('Query sent');//此处为ajax/post函数
$(':input').val('');
}
});
我看不出操作码到底哪里错了(除了拼错了“clearInput”)。@Pointy-既然你已经指出了,我也不知道!只是复制了代码并重写了大部分代码,使其更具逻辑性,并且没有真正费心测试错误@adeneo我试过了,但如果两个文件都填写了,它仍然无法保存。@adeneo修复了它。您的代码总是清除字段。您确定没有在服务器端更改某些内容吗?您是否尝试过从浏览器控制台检查POST事务的实际内容?你得到的代码应该可以工作——如果你注释掉验证测试,它还能工作吗?
<button id='clickme'>CLICK</button>
<div>Name:<input id='name' type='text'></div>
<div>Comment:<input id='comment' type='text'></div>
button {
margin: 10px auto;
}
div {
margin: 10px auto;
}
$('#clickme').click(function(){
var nametext = $('#name').val();
var commenttext = $('#comment').val();
if (nametext.length < 1 || commenttext.length < 1)
{
alert('Both fields need text');
$(':input').val('');
}
else
{
alert('Query sent');//ajax/post function here
$(':input').val('');
}
});