我有一个简单的表单,可以为codeigniter创建所有表单和验证要求。我想要做的是在序列化之前过滤掉任何空输入,这样我就不会创建表单输入和表单验证集规则。我不知道如何解决这个问题。我在Jquery中有警报的地方是我要删除任何空输入的地方(再次在序列化之前)。 此时我正在使用的不检测空表单字段。没有检测代码,整个系统工作正常。这是我正在使用的
<h1>Field Name</h1>
<form action="Form.php" onsubmit="return false;" id="form" method="post">
<input type="text" name="v1" id="v1" />
<input type="text" name="v2" id="v2" />
<input type="text" name="v3" id="v3" />
<input type="text" name="v4" id="v4" />
<input type="text" name="v5" id="v5" />
<input type="text" name="v6" id="v6" />
<input type="submit" name="send" id="send" value="Send" />
</form>
<hr />
<script>
$(function(){
$('#send').click(function(){
---------------------------------------
$(":input").each(function() {
if($(this).val() === "")
alert("Empty Fields!!"); //using alert just to see if empty fields are detected.
return false;
});
-----------------------------------------
var data = $('#form').serialize();
$.ajax({
type: "POST",
data: data,
url: "Form.php",
success: function(msg){
if(msg){
$('#display').html(msg).show();
}else{
$('#display').text("<p>nothing came back</p>");
}
}
});
return false;
});
});
我只是想避免打印出空的表单字段
<p>
<label for=""></label> <br />
<input type="text" name="" id="" /> <br />
<label class="error" id=""> This field is required</label> <br />
<p/>
感谢您的时间
答案 0 :(得分:2)
这将删除所有长度为0的文本字段:
$('#send').click(function(){
$(':input[type="text"]').filter(function(e){
if (this.value.length===0){
return true;
}
}).remove();
});
答案 1 :(得分:1)
您应该使用\ s作为搜索查询使用正则表达式。所以/ ^(\ s)* $ /作为正则表达式,只是确保输入与此匹配。
很抱歉,但我不熟悉Jquery,或者我会完全编写代码。
答案 2 :(得分:1)
$('#send').click(function(){
//---------------------------------------
$(":input").each(function() {
if($(this).val() === "")
alert("Empty Fields!!"); //using alert just to see if empty fields are detected.
return false;
});
你没有收到错误吗?第一个lambda的范围没有关闭。
使用Firebug突出显示您可能会收到的错误并将其发布。
答案 3 :(得分:1)
隐藏未指定value
的元素:
$('input:text[value=""]').hide();
但是,当然,如果html中提供了value="x"
属性,则会导致元素显示。