- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将一个数组列表从 Controller 传递到此 homepage.jsp。我使用 jSTL 标签显示值。
<c:forEach items="${orgList}" var="item">
<tr>
<td>
<input type="radio" class="rbutton" name="chooseOrg" value="${item.orgId}">   
<a href="http://localhost:8080/SpringDemo/deptPage/${item.orgId}">
<c:out value="${item.orgName}" /></a>
</td>
<td>
<c:out value="${item.orgDesc}" />
</td>
</tr>
这是我正在迭代的代码。它显示得非常好。我想要这些值在 javascript 中的其他地方。这是我到目前为止尝试过的:
var radioButtons = $("#orgDisplayForm input:radio[name='chooseOrg']");
var totalFound = radioButtons.length;
var checkedRadioButton = radioButtons.filter(':checked');
var selectedIndex = radioButtons.index(checkedRadioButton);
selectedindex 为我提供了 arraylist 的正确索引。我使用警报对其进行了检查。但是下面的警报始终给出 arrayList orgList 中的第一个值。
alert("${orgList.get(selectedIndex).orgName}");
$("#updateName").val("${orgList.get(selectedIndex).orgName}");
我的动机是获取 selectedIndex 并从 arralist orgList 中获取相应的组织名称,并将其设置为 id 为“updateName”的输入字段。期待帮助。
供引用的完整代码为:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<style>
html,body {
width: 100%;
}
#insertPopUp,#updatePopUp {
display:none;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
/* $("#insertPopUp").hide(); in css its display had to be made none*/
$("#insert").click(function(){
$("#insertPopUp").dialog({
autoOpen:false,
show: 'slide',
resizable: false,
position:"relative",
stack: true,
height: 'auto',
width: 'auto',
modal:true
});
$("#insertPopUp").dialog("open");
});
$("#popUpSave").click(function(){
$.ajax({
type : 'POST',
url : "http://localhost:8080/SpringDemo/insertOrganization/"
+"?insertName="+$("#insertName").val()
+"&insertDescription="+$("#insertDescription").val(),
success : function(){
$("#insertPopUp").dialog("close");
window.location.href="http://localhost:8080/SpringDemo/homePage";
}
});
});
$("#delete").click(function(){
//to get the index of the selected option in a radio button group
/* var radioButtons = $("#orgDisplayForm input:radio[name='chooseOrg']");
// this should contain the count of all your radio buttons
var totalFound = radioButtons.length;
// this should contain the checked one
var checkedRadioButton = radioButtons.filter(':checked');
// this should get the index of the found radio button based on the list of all
var selectedIndex = radioButtons.index(checkedRadioButton);
alert(selectedIndex); */
// to get value of the selected option in a radio button group
var orgid = $("#orgDisplayForm input[name='chooseOrg']:checked").val();
$.ajax({
type : 'POST',
url : "http://localhost:8080/SpringDemo/deleteOrganization/" +"?orgid="+orgid,
success : function(){
window.location.href="http://localhost:8080/SpringDemo/homePage";
}
});
});
$("#update").click(function(){
debugger;
var orgid = $("#orgDisplayForm input[name='chooseOrg']:checked").val();
$("#updatePopUp").dialog({
autoOpen:false,
show: 'slide',
resizable: false,
position:"relative",
stack: true,
height: 'auto',
width: 'auto',
modal:true
});
$("#updatePopUp").dialog("open");
var radioButtons = $("#orgDisplayForm input:radio[name='chooseOrg']");
// this should contain the count of all your radio buttons
var totalFound = radioButtons.length;
// this should contain the checked one
var checkedRadioButton = radioButtons.filter(':checked');
// this should get the index of the found radio button based on the list of all
var selectedIndex = radioButtons.index(checkedRadioButton);
/* alert("${selectedIndex}"); */
/* var name = ${orgList};
<c:out value="${colors[0]}"/> */
/* $("#updateName").text($orgList[selectedIndex].orgName); */
/* alert("<c:out value="${orgList[0].orgName}"/>"); */
/* $("#updateName").text("<c:out value="${orgList[0].orgName}"/>"); */
/* alert("<c:out value="${orgList.get(selectedIndex).orgName}"/>");
alert("${orgList.get(selectedIndex).orgName}"); */
//$("#updateName").val("${orgList.get(selectedIndex)}");
$("#updateName").val("${orgList.get(selectedIndex)}");
<%-- alert("${orgList.get(2).orgName}");
$("#updateName").text(<%=${orgList.get(i)}%>) --%>;
/* $("#updateDescription").text(${orgList[selectedIndex].orgDesc}); */
});
$("#popUpUpdate").click(function(){
var orgid = $("#orgDisplayForm input[name='chooseOrg']:checked").val();
$.ajax({
type : 'POST',
url : "http://localhost:8080/SpringDemo/updateOrganization/"
+"?updateName="+$("#updateName").val()
+"&updateDescription="+$("#updateDescription").val()
+"&orgid="+orgid,
success : function(){
$("#updatePopUp").dialog("close");
window.location.href="http://localhost:8080/SpringDemo/homePage";
}
});
});
});
</script>
</head>
<body>
<br>
<br>
<br>
<form:form id="orgDisplayForm">
<table align="center" width="60%">
<col width="30%">
<col width="30%">
<tr>
<th align="left">Organization Name</th>
<th align="left">Description</th>
</tr>
<c:forEach items="${orgList}" var="item">
<tr>
<td>
<input type="radio" class="rbutton" name="chooseOrg" value="${item.orgId}">
   
<%-- <a id ="deptAnchor" onclick=clickOrg(${item.orgId}) href="http://localhost:8080/SpringDemo/deptPage/"+${item.orgId}> --%>
<a href="http://localhost:8080/SpringDemo/deptPage/${item.orgId}">
<c:out value="${item.orgName}" /></a>
</td>
<td><c:out value="${item.orgDesc}" /></td>
</tr>
<tr><td></td><td></td></tr>
</c:forEach>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr>
<td><button type="button" id="insert">Insert</button>   <button type="button" id= "update">Update</button>   <button type="button" id="delete">Delete</button></td>
</tr>
</table>
<div id="insertPopUp">
<form:form method="POST" action="/insertOrganization">
<p><label for="name">Organization name</label><p><input type="text" name="name" id="insertName" /></p></p>
<p><label for="description">Organization description</label><p><input type="text" name="description" id="insertDescription" /></p></p>
<button type="submit" id="popUpSave">Save</button>
</form:form>
</div>
<div id="updatePopUp">
<p><label for="name">Organization name</label><p><input type="text" name="name" id="updateName" /></p></p>
<p><label for="description">Organization description</label><p><input type="text" name="description" id="updateDescription" /></p></p>
<button type="submit" id="popUpUpdate">Update</button>
</div>
</form:form>
</div>
</body>
最佳答案
我想说问题出在这部分:
alert("${orgList.get(selectedIndex).orgName}");
$("#updateName").val("${orgList.get(selectedIndex).orgName}");
在这里,您尝试混合两件事 - 服务器端 JSP 代码 (${orgList.get(selectedIndex).orgName}
) 和 浏览器端 Javascript。服务器端代码在生成 HTML 时评估一次,此时 selectedIndex
值可能为 0
,这将为您提供
值。然后该值出现在 JavaScript 代码中,由浏览器处理。orgList
第一个元素的 orgName
我会尝试添加一个 JavaScript 数组,其中包含 orgList
中所需的值:
<script>
var jsOrgList = [];
var jsItem;
</script>
<c:forEach items="${orgList}" var="item">
// your HTML code to generate table rows
<script>
jsItem = new Object();
jsItem.orgName = '${item.orgName}';
jsItem.orgDesc = '${item.orgDesc}';
// ... etc., all properties needed for browser-side processing
jsOrgList.push(jsItem);
</script>
</c:forEach>
然后您可以在 Javacsript 中使用 jsOrgList
数组。
免责声明:上面的代码应该被认为是一个快速而肮脏的黑客,有更好的方法将后端值获取到前端。
关于javascript - 在 JavaScript 中运行时访问数组列表中的特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32201596/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!