1

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

这是我的表单的代码:

<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();
});

所以这是我的问题:

我如何确保在提交此表单之前,我的输入已经有一个值..?

4

5 回答 5

3

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

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

代替:

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

更新答案:
jQuery API 文档的帮助下,我找到了一个完全可行的解决方案:

$("#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();
});

https://jsfiddle.net/christianheinrichs/nbuzoxLv/2/

于 2013-10-01T16:42:47.327 回答
0

尝试

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

参考

event.preventDefault

于 2013-10-01T16:43:34.320 回答
0

检查返回的内容:

$("#photosubmit").val()

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

试试这个:

if ($("#photosubmit").val()) {
    $("#upload_form").submit();
}
于 2013-10-01T16:55:56.310 回答
0

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

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

另外,#upload_image 点击事件是检查您的 input[type="file"] 是否已填充的正确事件吗?

于 2013-10-01T17:00:46.363 回答
0

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

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

我希望它会在未来对某人有所帮助。

于 2013-10-02T14:30:38.440 回答