jQuery - 验证表单

时间:2013-10-01 16:39:56

标签: javascript php jquery forms codeigniter

我尝试了这段代码,但即使输入尚未经过验证,它仍然会提交表单。

以下是我的表单的代码:

<a style="cursor: pointer;" id="upload_image">Upload Image</a></li>

<?php
 $attributes = array('id' => 'upload_form'); 
 echo form_open_multipart('c=web_page&m=upload_img', $attributes); 
?>

<input type='file' style="display:none;" name="photosubmit" id="photosubmit"/>
<?php echo form_cose(); ?>

以下是我的jQuery的代码:

$("#upload_image").click(function(){
 $("#photosubmit").click();
  if( $('photosubmit').val() != "") //
   $("#upload_form").submit();
});

所以这是我的问题:

在提交此表单之前,我如何确保输入已经是值??

5 个答案:

答案 0 :(得分:3)

如果你想通过id获取元素,你应该这样做:

if( $('#photosubmit').val() != "")

而不是:

if( $('photosubmit').val() != "")

更新回答:
jQuery API documentation的帮助下,我找到了一个完全有效的解决方案:

$("#the_form").submit(function(event) {
    if ( $( "input:first" ).val() !== "" ) {
        alert("The file input is valid.");
        return;
    }
    alert("The file input is not valid.")
    event.preventDefault();
});

http://jsfiddle.net/q2Jpg/4/

答案 1 :(得分:0)

尝试

$("#upload_image").click(function (e) {
    e.preventDefault();
    if ($("#photosubmit").val() != "") 
           ^ //added # here
    $("#upload_form").submit();
});

参考

event.preventDefault

答案 2 :(得分:0)

检查返回的内容:

$("#photosubmit").val()

如果返回null与空字符串不同。

试试这个:

if ($("#photosubmit").val()) {
    $("#upload_form").submit();
}

答案 3 :(得分:0)

您的代码中缺少#,必须是:

$("#upload_image").click(function(){
 $("#photosubmit").click();
  if( $('#photosubmit').val() != "")
   $("#upload_form").submit();
});

此外,是#upload_image点击事件,检查您的输入[type =&#34; file&#34;]是否已填写的正确事件?

答案 4 :(得分:0)

经过一天的研究,我尝试了这个,它的确有效。 只有在对文件输入类型表单进行任何更改后才会提交表单(例如,您要上传新文件)。

$("#upload_image").click(function () {
  $("#photosubmit").click().change(function(){
    $("#upload_form").submit();
  });
});

我希望将来可以帮助某人。