我尝试了这段代码,但即使输入尚未经过验证,它仍然会提交表单。
以下是我的表单的代码:
<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();
});
所以这是我的问题:
在提交此表单之前,我如何确保输入已经是值??
答案 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();
});
答案 1 :(得分:0)
尝试
$("#upload_image").click(function (e) {
e.preventDefault();
if ($("#photosubmit").val() != "")
^ //added # here
$("#upload_form").submit();
});
参考
答案 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();
});
});
我希望将来可以帮助某人。