我在使用jquery中的表单中的选定值时遇到问题。它与以下因素密切相关:
我已经尝试了几个小时使用上面的(和其他)示例来完成这项工作。
我有一个带有帐号的下拉列表:
<form id="accounts">
<select>
<option value="">Select one</option>
<c:forEach var="custAccount" items="${customerAccounts}">
<option value=${customerAccount}>${customerAccount.accountId}</option>
</c:forEach>
</select>
</form>
我想在href中使用所选帐户:
<a href="Controller?&accountid='+selectedAccount+'&username=${username}&userid=${userid}&command=customerNewTransaction">Start new transfer</a>
这是我的脚本:
<script type="text/javascript">
$(document).ready(function() {
var selectedAccount;
$("#accounts").change(function() {
selectedAccount = $(this).text();
});
});
</script>
这不起作用,所选文本每次都为空。我也试过调用.val()以及相同(缺乏)的结果。
我错过了什么?
<form id="accounts">
<select id="account-select">
<option value="">Select one</option>
<c:forEach var="custAccount" items="${customerAccounts}">
<option value=${customerAccount}>${customerAccount.accountId}</option>
</c:forEach>
</select>
<div id="transfer-container">
</div>
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#account-select").change(function() {
$('#transfer-container').html( '<a href="Controller?&accountid='+ $(this).val() +'">Start new transfer</a>' );
});
});
</script>
您已在表单上添加了更改处理程序,而不是选择。你可能想要这样的东西:
<form id="accountForm">
<select id="account">
..
</select>
</form>
然后在你的jQuery脚本中:
$(document).ready(function () {
$('#account').on('change', function (event) {
$('#accountForm').append($(this).val());
});
});
啊,我看到MackieeE打败了我,但只是提供了一个稍微不同的例子:
<script type="text/javascript">
function updateLink() {
var selectedAccount = $('#account').val();
var uri = 'Controller?&accountid='+selectedAccount+'&command=customerNewTransaction';
$('#account-link').attr('href', uri);
}
</script>
<form>
<select id="account" onchange="updateLink();">
<option value="0" selected disabled>Select one</option>
<c:forEach var="custAccount" items="${customerAccounts}">
<option value=${customerAccount}>${customerAccount.accountId}</option>
</c:forEach>
</select>
</form>
<a id="account-link" href="#">Start a new transfer</a>