2013-07-02 95 views
1

我有一個需求,如果圖像沒有被用戶上傳,我需要設置一個默認圖像。 我想使用JavaScript設置圖像。我的圖片位於日食中我項目的圖片文件夾中。在javascript中設置默認圖像

我的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"); 
    } 
} 
+0

@zenith更新。 – Saha

+0

@til_b沒有控制檯錯誤。我在設置圖像路徑時遇到問題。 – Saha

+0

您是否在設置輸入值? – vladkras

回答

2

你試圖改變文件輸入的name屬性。無法設置文件輸入的路徑。其原因是安全性 - 如果可能的話,惡意站點可以設置該值並自動提交表單以竊取用戶系統中的文件。

如果你打算設置一個<img />src,那麼你需要引用它在你的getElementById()電話,並設置src屬性,而不是name屬性。

document.getElementById('myimg').src = "/assets/img/generic.png"; 
+0

不工作...我保持警覺,它顯示爲null – Saha

+0

您是否創建了一個''? – MrCode

+0

我保留了''但我得到的價值是'undefined' – Saha

1

您無法使用JavaScript修改FILE類型輸入。如果網站可以自動從您的機器上傳文件,這將是一個主要的安全問題。

1

試試這個。

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

嘗試過......不工作我。 – Saha

+0

您應該使用您的服務器腳本執行此操作,或者在MYSQL –

0

可以設置默認圖像,但不能使用JavaScript使用File元素。基本上你有3個選項:

1.)將它設置爲數據庫中的默認值。因此,如果沒有做出改變,則當從數據庫請求時加載默認圖像。

2.)以您的服務器端語言設置圖像。因此,如果數據庫中沒有圖像,則顯示默認圖像。 <img src="<% echo image %>" />

3.)如果沒有圖像可以加載,則將JavaScript中的Img元素src屬性設置爲默認圖像。

使用jQuery,這將類似於如下:

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

或者沒有jQuery的看到傑伊·哈里斯的答案。

至於最好的選擇,它取決於你的要求。如果有人禁用JavaScript(現在不太可能),但3號可能會有問題,但仍可能發生。我會根據我的項目的確切要求考慮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); 
+0

中設置默認值感謝您的建議。我想使用JavaScript設置圖像。幫助我設定我的形象的道路。 – Saha

+0

@sahu我剛剛爲您添加了獲取JavaScript中圖像路徑的方式。 –