我有一个这样的表格: -
<form id="form" name="form" action="banner_ad_post.php" method="post" enctype="multipart/form-data">
<p>
<label for="banner_name"><font color="#FF0000"> * </font>Banner Name: </label>
<input type="text" name="banner_name" id="banner_name" value="" maxlength="100" required="required"/>
</p>
<p>
<label for="Banner_website_url"><font color="#FF0000"> * </font>Banner website Url: </label>
<input type="url" name="banner_site_url" id="banner_site_url" value="" maxlength="100" required="required"/>
</p>
<p>
<label for="banner_image_url">Banner Image Url: </label>
<input type="file" name="file" id="file" value="" accept="image" placeholder="Browse from hard disk" onchange="img_path()"/>
<font color="#FF0000"> OR</font>
<input type="url" name="banner_image_url" id="banner_image_url" value="" maxlength="100" placeholder="Enter the url from website." onchange="validate()"/>
</p>
<p>
<label for="submit"> </label>
<input type="submit" id="submit" name="submit" value="Submit" />
</p>
</form>
JavaScript代码如: -
<script>
function validate()
{
var banner_name=document.getElementById("banner_name");
var banner_site_url=document.getElementById("banner_site_url");
var banner_file=document.getElementById("file");
var banner_image_url=document.getElementById("banner_image_url");
//var x=banner_file.value;
//var y=banner_image_url.value;
if((banner_file.value=true) && (banner_image_url.value=true))
{
alert("Please choose only one field either url or image uploading.");
document.getElementById("form").reset();
}
}
function img_path()
{
var file_path=document.getElementById('file').value;
if(file_path.match(".jpeg$")==".jpeg" || file_path.match(".gif$")==".gif" || file_path.match(".GIF$")==".GIF" || file_path.match(".JPEG$") ==".JPEG" || file_path.match(".JPG$")==".JPG" ||file_path.match(".jpg$")==".jpg" || file_path.match(".png$")==".png" || file_path.match(".PNG$")==".PNG")
{
return true;
}
else
{
alert("Upload .jpg/.gif/png file olny");
document.getElementById("form").reset();
return false;
}
}
</script>
现在,问题在于,每当我尝试输入表单中唯一的图片网址时。它会生成一条警告消息,指出“(请仅选择一个字段或网址或图片上传)”。但根据我的定义,只有当字段banner_image_url和file都设置为true时,才必须显示消息。
任何帮助将不胜感激...
Thanx提前。
答案 0 :(得分:3)
您需要使用==而不是=
if((banner_file.value==true) && (banner_image_url.value==true))
答案 1 :(得分:1)
这样做:
banner_file.value=true
设置banner_file.value
的值,并返回true
,无条件。
这不是您想要的,因为您要检查banner_file.value
的现有值。
另一方面,这样做:
banner_file.value==true
仅当true
的值评估为banner_file.value
时,才会返回true
。 是你想要做的。
尝试以下更改:
if((banner_file.value) && (banner_image_url.value))
答案 2 :(得分:0)
此:
if((banner_file.value=true) && (banner_image_url.value=true))
应该是:
if((banner_file.value == true) && (banner_image_url.value == true))
因为,在您的代码中,您将变量设置为true,而不是检查它是否为true。但如果你想尽可能少的代码,你可以写:
if(banner_file.value && banner_image_url.value)
显式测试== true
是多余的 - 但它可以使代码对某些人更具可读性。我以为我会提到它,以防你发现最后一个例子更清洁:)