2

画像がユーザーによってアップロードされていない場合、デフォルトの画像を設定する必要があるという要件があります。JavaScriptを使用して画像を設定しようとしています。私のイメージは、Eclipse のプロジェクトの images フォルダーにあります。

私のhtmlコードは次のとおりです。

<tr>
    <td align="right">Upload Image :</td>
    <td>
         <input type="file"  id="imageNonSaml" name="imageNonSaml" value=""/>
    </td>
</tr>

私のJavaScriptは:

function testSSO(){
    var image=document.getElementById("imageNonSaml").value;
    if(image==null || image==''){
        alert("inside if");
        document.getElementById('imageNonSaml').setAttribute('name',"/assets/img/generic.png");
    }
}
4

4 に答える 4

1

FILE 型の入力を JavaScript で変更することはできません。サイトがマシンからファイルを自動的にアップロードできる場合、これはセキュリティ上の大きな問題になります。

于 2013-07-02T14:08:56.990 に答える
1

これを試して。

function testSSO(){
 var image = document.getElementById("imageNonSaml");
 if(image.value == null || image.value == ''){
  alert("inside if");
  image.value = "/assets/img/generic.png";
 }
}
于 2013-07-02T14:09:36.747 に答える
0

デフォルトの画像を設定することは可能ですが、JavaScript を使用して File 要素を使用することはできません。基本的に、次の 3 つのオプションがあります。

1.) データベースのデフォルト値として設定します。したがって、変更が行われない場合、データベースから要求されたときにデフォルトのイメージがロードされます。

2.) サーバー側の言語で画像を設定します。したがって、データベースに画像がない場合は、デフォルトの画像が表示されます。<img src="<% echo image %>" />

3.) 画像をロードできない場合は、JavaScript で Img 要素の src 属性をデフォルトの画像に設定します。

jQuery では、これは以下のようになります。

$("#imageid").attr("src","mydomain.com/img/imgname.png");

または、jQuery を使用しない場合は、ジェイ ハリスの回答を参照してください。

最適なオプションについては、要件によって異なります。3 番の問題は、誰かが JavaScript を無効にしている場合に問題になる可能性がありますが (現在はそうではありません)、それでも発生する可能性があります。プロジェクトの正確な要件に基づいて、1 つまたは 2 つを検討します。

編集:

JavaScript でパスを設定するには、次のように完全なドメインを使用します。

//get the url based upon what is in the browser
var url = location.protocol + "//" + location.host;
//build the image url from this
var imgurl = url + "/assets/img/generic.png";
//plug it into the jQuery selector
$("#imageid").attr("src",imgurl);
于 2013-07-02T14:18:04.237 に答える