如何在jQuery中使用struts2标签作为字符串
How to to use Struts 2 tags in jQuery as String
不能在jQuery中使用Struts2标签作为String
.
这是我的div
:
<div class="row">
<div class="form-group col-xs-12 col-sm-6 col-lg-3">
<label>Expensed Type</label>
<s:select name="expenseList[0].param"
list="'advertisement','food'"/>
</div>
<div class="form-group col-xs-12 col-sm-6 col-lg-3">
<label>Amount</label>
<s:textfield name="expenseList[0].value" value="%{expenseList[0].value}"/>
</div>
<div class="form-group col-xs-12 col-sm-6 col-lg-3">
<label>Date</label>
<s:textfield name="expenseList[0].dt" value="%{expenseList[0].dt}"/>
</div>
</div>
<div class="col-xs-4 right">
<span class="glyphicon-plus"></span>
<button type="submit" class="btn btn-default">Save</button>
</div>
我想在JavaScript中使用上面的String
,这样每当用户单击add
按钮时,它必须生成一个新行。我正在添加上面的jQuery点击事件
:
<script type="text/javascript">
$(document).ready(function() {
$(document).on('click', '#add', function(event) {
event.preventDefault();
$(".row").append("< /div <div class='"row'">"
+ "<div class = '"form - group col - xs - 12 col - sm - 6 col - lg - 3'">"
+ "<label> Expensed Type </label>"
+ "<s:select name='"expenseList[1].param'" list='"'advertisement','food''"/>"
+ "</div>"
+ "<div class = '"form - group col - xs - 12 col - sm - 6 col - lg - 3'">"
+ "<label> Amount </label>"
+ "<s:textfield name='"expenseList[1].value'" value='"%{expenseList[1].value}'"/>"
+ "</div>"
+ " <div class = '"form - group col - xs - 12 col - sm - 6 col - lg - 3'">"
+ "<label> Date </label>"
+ "<s:textfield name='"expenseList[1].dt'" value='"%{expenseList[1].dt}'"/>'"/> "
+ "</div>"
+ "</div>"
);
});
});
</script>
显示如下异常:
org.apache.jasper.JasperException: /pages/expense/AddExpense.jsp (line: 88, column: 43) quote symbol expected
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:89)
org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:222)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:162)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:153)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1236)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1452)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
Line 88 is `+ "<s:select name='"expenseList[1].param'" list='"'advertisement','food''"/>"`
由于您只使用javascript来附加HTML(而不是操作它或DOM),因此可以考虑返回一个JSP代码片段。
您可以在这里找到完整的示例。
也要记住映射keypress
,否则使用键盘的用户不会触发事件。
应该是这样的:
<script type="text/javascript">
$(document).ready(function() {
$("#add").on('keypress click', function(event) {
$.ajax({
url: "<s:url action='loadNewRowTemplateWithAjaxAction'/>",
}).done(function(result) {
$(".row").append(result);
});
});
});
</script>
这使您可以保持一个干净的JSP并在服务器端执行操作,例如检查是否可以添加新行,或者在会话中更新行计数器,等等……
您不能使用Struts标记在javascript变量中生成HTML作为字符串,因为生成的代码应该转义引号。
javascript字符串需要在内容周围加上引号,并且内容中的每个引号都应该被转义,所以它不会结束字符串内容。
您也可以尝试使用单引号或双引号来分隔字符串值,但如果没有正确转义,则会在呈现之前失败。
不要从javascript变量中的Struts标签生成HTML,而是使用Ajax来加载作为Ajax响应返回的HTML。
相关文章:
- 在<页眉>标签
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- iframe正在添加标签,需要删除它们
- 如何自动调整标签的高度以适应内容
- Jquery标签插件粘贴问题
- Twitter引导程序Typeahead-Id&标签
- Highcharts-如何在自定义格式化程序中获得默认的y轴标签格式化程序
- Morris.js折线图x轴标签在调整大小后消失
- JavaScript goto 标签如何使用内部循环
- 显示某个用户ID的某个标签的30张Instagram图片
- 标签客户端的设置值
- 谷歌图表显示所有标签
- 如何在图片和边缘之间居中设置标签
- 在Datatables中设置本地化后,需要更改标签文本
- 用 javascript 数组填充 struts2 select 标签
- Struts2 显示标签动态链接显示相同的行值
- 如何在 struts2 属性标签中给出 javascript 函数和 css 样式
- 在JavaScript函数中创建Struts2标签
- 如何在jQuery中使用struts2标签作为字符串
- 使用struts2超链接标签调用javascript函数