我正在尝试将一些参数传递给具有“onBlur”事件的函数,如下所示:
var str = "<tr><td> </td><td colspan='8'>";
str += "<input onBlur='blurEdit("+sno+","+field+");' value='"+$.trim($('#'+elementId).text())+"' type='text' class='form-control' name='edit_"+field+"' id='edit_"+field+"'>"+
"<span id='msgEdit'></span></td></tr>";
$(str).insertAfter($("#"+rowId));
但函数onBlur=blurEdit("+sno+",'"+field+"')
不会接受第二个参数值及其,因为它用字符串值括起来。
如何在javascript创建的字符串中使用函数?
答案 0 :(得分:1)
制作单独的变量
var fun="blurEdit("+sno+","+field+");";
然后在字符串
中var str = "<tr><td> </td><td colspan='8'>";
str += "<input onBlur='"+fun+"' value='"+$.trim($('#'+elementId).text())+"' type='text' class='form-control' name='edit_"+field+"' id='edit_"+field+"'>"+
"<span id='msgEdit'></span></td></tr>";
$(str).insertAfter($("#"+rowId));
试试这个。它应该适合你
答案 1 :(得分:1)
使用相同的语句onBlur=blurEdit("+sno+",'"+field+"');
似乎对我有用。确保您在'
之前和之后没有给出任何blurEdit
,因为您已在问题中提供了$(document).ready(function() {
$("#btn1").click(function(){
var field ="name";
var sno=1;
var str="<input onBlur=blurEdit("+sno+",'"+field+"'); type='text'/>";
$(str).insertAfter($("#rowId"));
});
});
var blurEdit = function(sno,field){
alert(field);
}
。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="rowId"></div>
<button id="btn1">Append Text</button>
&#13;
@Controller
public class RouteController {
@RequestMapping(value = "/{path:[^\\.]*}")
public String redirect() {
return "forward:/";
}
}
&#13;