如果仅输入输入值,则用户应该能够上传文件。但是,只要我点击按钮,就会弹出上传文件的窗口。我不希望它弹出,除非用户输入了输入文件中的值如下所述。 这些是输入:
<input type="text" id="id" placeholder="Enter Audit ID" autocomplete="off">
<input type="text" id="email_id_upload" placeholder="Enter Email_id " autocomplete="off">
这是上传者:
<form>
<input type="file" name="file" id="file"><br>
<input type="button" name="submit_file" value="Submit">
</form>
这是Js检查用户是否输入了所有值:
$('#file').click(function(){
var email_id_upload= $('#email_id_upload').val();
var id = $('#id').val();
if(email_id_upload.length !==0 && id.lenght !==0)
{
//allow upload window to pop up
}
else
{
if(email_id_upload.length ===0 && id.length ===0)
{$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");}
else{
if(email_id_upload.length ===0)
{$('#message_content2_1').html("<span style='color:red'>Please fill email id</span>");}
if(id.length ===0)
{$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");}
}
}
});
答案 0 :(得分:1)
你发布JS的方式,它实际上适合我。 if条件中有一个拼写错误:id.lenght
。一般来说,仅仅绑定到click事件并不是一个好主意,因为有人可能也会触发,例如提交事件,在表单字段中按Enter键。
在您的示例中,当两个字段都为空并且有人单击#file元素时,将执行else块,并且click事件会冒泡到#file元素的容器。要停止事件冒泡,请在else块结束时返回false。
答案 1 :(得分:1)
我,只是纠正你的脚本。认为它会起作用:
$('#file').click(function(e){
var email_id_upload= $('#email_id_upload').val();
var id = $('#id').val();
if(email_id_upload.length !==0 && id.lenght !==0)
{
//allow upload window to pop up
}
else
{
e.preventDefault();
if(email_id_upload.length ===0 && id.length ===0)
{$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");}
else{
if(email_id_upload.length ===0)
{$('#message_content2_1').html("<span style='color:red'>Please fill email id</span>");}
if(id.length ===0)
{$('#message_content2_1').html("<span style='color:red'>Please fill email id and audit id</span>");}
}
}
});