2017-02-10 58 views
1

我搜索了與我的這個問題有關的問題,找不到答案,所以在這裏我問的是哪個可能是一個愚蠢的問題。Jquery使用傳遞參數在html填充變量裏面

這是我的代碼。

function addCategory(data_type,header){ 
categoryDialog = $("<div id='parentcategoryDiv'>" + 
    '*header* Name<input type="text" id="categoryText" name="categoryText" style="width: 300px;" placeholder="Program Type"/>' + 
    '<br/>' + 
    '<br/>' + 
    '<input type="submit" name="saveCategory" value="Save" id="saveCategory" class="right" onclick="saveCategory(*data_type*);">' + 
    '<input type="submit" name="cancelCategory" value="Cancel" id="cancelCategory" class="right" onclick="closeDialog();">' + 
    "</div>"); 

categoryDialog.dialog({ 
    title: 'Add/Edit '+header, 
    maxWidth:500, 
    maxHeight: 100, 
    width: 500, 
    height: 100, 
    draggable: true, 
    autoOpen: false, 
    modal: true 
}); 
categoryDialog.dialog('open'); 
$("body").on("click", ".ui-widget-overlay", function() { 
    closeDialog(); 
}); 

};

header和data_type是兩個傳遞的參數。但問題是我無法在html填充變量中使用這些參數(header和data_type)。有沒有辦法?任何幫助表示讚賞。

+0

在第一部分中,您只是輸出_literal_值'data_type',作爲文本字符串/字符串的一部分。您需要連接靜態部分和變量,就像您在第二部分中使用'title'的值一樣。 (並且根據data_type實際是什麼數據類型,你可能也需要引用函數參數。) – CBroe

回答

2

在將參數傳遞給onclick函數時,可能會出現字符串連接問題。試試這個,我已經使用了轉義字符來保留單引號,這樣傳入的參數將作爲onclick方法的字符串傳遞;試試這個,讓我知道它是否有效!

function addCategory(data_type,header){ 
categoryDialog = $("<div id='parentcategoryDiv'>" + 
''+header+' Name<input type="text" id="categoryText" name="categoryText" style="width: 300px;" placeholder="Program Type"/>' + 
'<br/>' + 
'<br/>' + 
'<input type="submit" name="saveCategory" value="Save" id="saveCategory" class="right" onclick="saveCategory(\''+data_type+'\');">' + 
'<input type="submit" name="cancelCategory" value="Cancel" id="cancelCategory" class="right" onclick="closeDialog();">' + 
"</div>"); 

console.log(categoryDialog); 

categoryDialog.dialog({ 
title: 'Add/Edit '+header, 
maxWidth:500, 
maxHeight: 100, 
width: 500, 
height: 100, 
draggable: true, 
autoOpen: false, 
modal: true 
}); 
categoryDialog.dialog('open'); 
$("body").on("click", ".ui-widget-overlay", function() { 
closeDialog(); 
}); 
};