如何使用我再次从GUI输入的文本字段的值进行进一步计算?我有以下代码
<tr>
<td> Enter Index Value:</td>
<td><input type="text" title="Enter Index#" id="ind" name="index"
size="2" maxlength="2" /></td>
<td><input type="text" name="bid" value=<%= lm.book_ids.get(a-1)%>
style="visibility: hidden" /></td>
<td><input type="text" name="brid" value=<%= lm.branch_id.get(a-1)%>
style="visibility:hidden" /></td>
<td><input type="text" name="cardno" value=<%= lm.cards.get(a-1)%>
style="visibility: hidden" /></td>
</tr>
我想使用text字段的值代替'a',这是一个任意的java int变量。
答案 0 :(得分:0)
您无法以这种方式更改变量。您的scriptlet(也是bad design BTW)只会在JSP文件呈现为HTML时运行一次。当用户加载页面时,只有scriptlet提供的数据在HTML中保留为文本。
您必须在页面加载时将整个数据结构保存到Javascript数组中,并根据索引继续交换数据,或者使用AJAX从服务器获取新数据。
*编辑*
以下是一个例子:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var indexField = $("#ind");
var bidArray = new Array();
bidArray[0] = '<%= lm.book_ids.get(0) %>';
bidArray[1] = '<%= lm.book_ids.get(1) %>';
indexField.keyup(function() {
var index = indexField.val();
var bid = bidArray[index];
if (bid !== undefined) {
$("#bid").val(bid);
}
});
});
</script>
</head>
[...]
<tr>
<td>Enter index value:</td>
<td><input type="text" title="Enter Index#" id="ind" name="index"
size="2" maxlength="2" /></td>
<td><input type="hidden" id="bid" name="bid" /></td>
</tr>
和JSfiddle。