[英]Passing Values from a JSP page to a javascript function
我有一個 jsp 頁面,它根據框中的選擇更新列出的內容。
<form:select path="Value" id="select" onchange="update()" items="${Values}" />
在另一個文件中,根據您選擇的內容和項目填充相應的更新功能。 這適用於一個盒子,但我需要有多個盒子,但是將代碼復制到 for 循環中會生成多個盒子,但更新函數僅指向對象“select”的 id。 我想創建一種方法讓 select 成為可變的,這樣它就可以生成多個具有不同值的對象,這樣它們就不會指向同一個東西。
我的想法是只創建一個 var 然后讓它計數,這樣在 id="select" 可以強制它創建不同的對象......但是更新函數從 jsp 讀取
var Val = $('#select option:selected').val();
為了使它們匹配,我需要將參數傳遞給 update() 函數,但是當我用參數填充更新方法時,JSP 無法再調用它。 我試過 Update(var n) { //code here}
and Update(int n) {//代碼在這里}
但是JSP語句運行update(//ValueIwant)時,總是拋出找不到方法的錯誤。
所以我的問題是,如何在不對所有值進行硬編碼的情況下動態地將參數從 jsp 頁面傳遞給 javascript 函數。
我想到了。 這很簡單。 只需從 JSP 調用函數(參數),但在 javascript 中,該方法只是用沒有類型的參數聲明的。
Function Myfunction (N)
{
//code
}
在這種特定情況下,javascript 關鍵字this
可用於傳遞元素的引用。
盡可能接近提供的代碼(包括 jQuery 使用),這將是:
<form:select path="Value" id="select" onchange="update(this)" items="${Values}" />
<!-- 3 more times; id should be changed and kept unique -->
<!-- ... -->
<script type="text/javascript">
function update(srcElement) {
var Val = $(srcElement).find('option:selected').val();
// want to make sure it's OK so far?
console.log(Val);
}
</script>
現在,在一般情況下,正如其他人所提到的,這本質上是一個問題,即您如何使用 JSP 標記來生成 HTML(以及此處嵌入的 javascript)來執行您希望它執行的操作。
我還沒有練習過 Spring MVC(我假設這就是這里使用的),但在偽代碼中,這可能看起來像:
<!-- remember? this is *pseudo-code*,
for I ignore the form:select capabilities,
specifically towards runtime expressions like ${i}
-->
<% for(int i= 0; i<4 ; i++) { %>
<%-- maybe the following line is not 100% OK;
fix it according to your taglib documentation --%>
<form:select path="Value" id="select${i}"
onchange="update(${i})" items="${Values}" />
<% } %>
<script type="text/javascript">
function update(index) {
var Val = $('#select' + index + ' option:selected').val();
// want to make sure it's OK so far?
console.log(Val);
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.