使用JavaScript禁用表单元素

时间:2012-11-24 19:15:00

标签: javascript html

我有一个这样的表格: -

<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()"/> &nbsp;
                   <font color="#FF0000"> OR</font> &nbsp;
                  <input type="url" name="banner_image_url" id="banner_image_url" value="" maxlength="100" placeholder="Enter the url from website." onchange="validate()"/> &nbsp; 


                </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提前。

3 个答案:

答案 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是多余的 - 但它可以使代码对某些人更具可读性。我以为我会提到它,以防你发现最后一个例子更清洁:)