$(document).ready(function () {
$("#btn").click(function () {
var booksname = document.getElementById("txtBooksName").value;
$.ajax({
type: "POST",
url: "Select.ashx?method=getdata&booksname=" + booksname,
contentType: "application/json",
dataType: "json",
async: true,
success: function (result) {
var data = eval(result.BD);
var rresult = "<table border=1><tr><th>书籍编号</th><th>书名</th><th>目前状态</th><th>操作</th></tr>"
for (var i = 0; i < data.length; i++) {
rresult += "<tr><td id='id" + i + "'>" + data[i].BookId + "</td><td>" + data[i].BooksName + "</td><td>" + data[i].BookState + "</td><td><input id='btn" + i + "' type='button' value='借阅' onclick='change( " + data[i].BookId + "," + data[i].BooksName + ")' /></td></tr>";
}
rresult = rresult + "</table>";
$("#MyDiv").html(rresult)
},
failure: function (response) {
alert(response);
}
})
})
})
//change(" + data[i].BookId + ")
function change(bookid, bookname) {
alert(bookid);
真心求教!为难了一天了,没搞懂!为什么会出现如图的问题?14行处,onclick 事件 的 change 函数中的俩参数需要在哪里定义呢?为什么 bookid 都可以,唯独bookname 不可以呢?
11 个解决方案
#1
送分题啊,你要在你的三国演义那里用单引号或者双引号包含
#2
就你截图没法看出你的onclick代码是怎么绑定的,你应该要给出aspx页面的代码,而不是生成后的html源代码,反正问题就是你的click第二个参数要加单引号
'三国演义'
这样就行
'三国演义'
这样就行
#3
咦,你好!我一共两次发帖,上次就是你第一个回复(也是唯一一个回复的),这次又要麻烦你了!你的意思是把 onclick='change( " + data[i].BookId + "," + data[i].BooksName + ")' 的" + data[i].BooksName + "再加个引号引起来么?
#4
rresult += "<tr><td id='id" + i + "'>" + data[i].BookId + "</td><td>" + data[i].BooksName + "</td><td>" + data[i].BookState + "</td><td><input id='btn" + i + "' type='button' value='借阅' onclick='change( " + data[i].BookId + "," +
data[i].BooksName + ")' /></td></tr>";
data[i].BooksName 的值没有被引号括起
假定
data[i].BookId = 100
data[i].BooksName = 三国演义
则变成 onclick='change( 100,三国演义)'
显然是不对的,要 onclick='change( 100,"三国演义")' 这样才行
data[i].BooksName 的值没有被引号括起
假定
data[i].BookId = 100
data[i].BooksName = 三国演义
则变成 onclick='change( 100,三国演义)'
显然是不对的,要 onclick='change( 100,"三国演义")' 这样才行
#5
额,加了之后就这样了。。。
#6
哦哦抱歉,补一下我的 ashx 代码。我用的一般处理程序中 html 表单。
<head>查出结果之后,直接替代掉 MyDiv 中的 <p> 标签
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="JS/jquery-1.10.2.min.js"></script>
<script src="Select.js"></script>
</head>
<body>
请输入想查询的书名:<input id="txtBooksName" type="text" style="height:17px;width:99px" />
<input id="btn" type="button" value="按钮" />
<div id="MyDiv">
<p>
查询结果将显示于此处!
</p>
</div>
</body>
#7
rresult += "<tr><td id='id" + i + "'>" + data[i].BookId + "</td><td>"
+ data[i].BooksName + "</td><td>" + data[i].BookState
+ "</td><td><input id='btn" + i +
"' type='button' value='借阅' onclick='change( "
+ data[i].BookId + ",\""
+ data[i].BooksName + "\")' /></td></tr>"
因为你拼接的时候是 用单引号包含的click函数,所以要改用引号包含BooksName ,像上面那样改就可以了
而且建议如果占位数量少的话,用string.Format更直观
#8
恩,因为 table 是在JS里 拼出来的,所以我只能再加单引号,不能用双引号,但是用了单引号也会出问题。。如上楼的截图。麻烦了!
#9
谢谢谢谢!我忘了还有转移符这么个东西!嘿嘿。新手,刚开始实习,请见谅!
#10
结贴!!!!!
#11
比如说,我要给书名加个颜色,a 用红色,b 用蓝色,怎么写啊
#1
送分题啊,你要在你的三国演义那里用单引号或者双引号包含
#2
就你截图没法看出你的onclick代码是怎么绑定的,你应该要给出aspx页面的代码,而不是生成后的html源代码,反正问题就是你的click第二个参数要加单引号
'三国演义'
这样就行
'三国演义'
这样就行
#3
咦,你好!我一共两次发帖,上次就是你第一个回复(也是唯一一个回复的),这次又要麻烦你了!你的意思是把 onclick='change( " + data[i].BookId + "," + data[i].BooksName + ")' 的" + data[i].BooksName + "再加个引号引起来么?
#4
rresult += "<tr><td id='id" + i + "'>" + data[i].BookId + "</td><td>" + data[i].BooksName + "</td><td>" + data[i].BookState + "</td><td><input id='btn" + i + "' type='button' value='借阅' onclick='change( " + data[i].BookId + "," +
data[i].BooksName + ")' /></td></tr>";
data[i].BooksName 的值没有被引号括起
假定
data[i].BookId = 100
data[i].BooksName = 三国演义
则变成 onclick='change( 100,三国演义)'
显然是不对的,要 onclick='change( 100,"三国演义")' 这样才行
data[i].BooksName 的值没有被引号括起
假定
data[i].BookId = 100
data[i].BooksName = 三国演义
则变成 onclick='change( 100,三国演义)'
显然是不对的,要 onclick='change( 100,"三国演义")' 这样才行
#5
额,加了之后就这样了。。。
#6
哦哦抱歉,补一下我的 ashx 代码。我用的一般处理程序中 html 表单。
<head>查出结果之后,直接替代掉 MyDiv 中的 <p> 标签
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="JS/jquery-1.10.2.min.js"></script>
<script src="Select.js"></script>
</head>
<body>
请输入想查询的书名:<input id="txtBooksName" type="text" style="height:17px;width:99px" />
<input id="btn" type="button" value="按钮" />
<div id="MyDiv">
<p>
查询结果将显示于此处!
</p>
</div>
</body>
#7
rresult += "<tr><td id='id" + i + "'>" + data[i].BookId + "</td><td>"
+ data[i].BooksName + "</td><td>" + data[i].BookState
+ "</td><td><input id='btn" + i +
"' type='button' value='借阅' onclick='change( "
+ data[i].BookId + ",\""
+ data[i].BooksName + "\")' /></td></tr>"
因为你拼接的时候是 用单引号包含的click函数,所以要改用引号包含BooksName ,像上面那样改就可以了
而且建议如果占位数量少的话,用string.Format更直观
#8
恩,因为 table 是在JS里 拼出来的,所以我只能再加单引号,不能用双引号,但是用了单引号也会出问题。。如上楼的截图。麻烦了!
#9
谢谢谢谢!我忘了还有转移符这么个东西!嘿嘿。新手,刚开始实习,请见谅!
#10
结贴!!!!!
#11
比如说,我要给书名加个颜色,a 用红色,b 用蓝色,怎么写啊