1

私はこのような形をしています:-

<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>

ここで問題となるのは、フォームに唯一の画像URLを入力しようとするときはいつでもです。「(URLまたは画像のアップロードのいずれかのフィールドを1つだけ選択してください)」というアラートメッセージを生成します。しかし、私の定義によれば、メッセージは、filedbanner_image_urlとfileの両方がtrueに設定されている場合にのみ表示する必要があります。

どんな助けでもありがたいです...
事前に感謝します。

4

3 に答える 3

3

=の代わりに==を使用する必要があります

if((banner_file.value==true) && (banner_image_url.value==true))
于 2012-11-24T19:19:55.130 に答える
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))
于 2012-11-24T19:20:21.593 に答える
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は冗長ですが、一部の人にとってはコードを読みやすくすることができます。あなたが最後の例がよりきれいであるとわかった場合に備えて、私がそれについて言及すると思っただけです:)

于 2012-11-24T19:20:58.630 に答える