从输入中获取值字符串隐藏JQuery和AIR
问题描述:
我有问题与我的代码..当我得到问题的价值[我] .. 例如:如果我有一个问题,取自数据库和显示行表'如果你的名字'..然后我把一个隐藏的类型...从输入中获取值字符串隐藏JQuery和AIR
当我发布的形式..我打电话回来的问题..它必须'什么是你的名字',但我只得到第一字符串是“什么” ..可能有人解决我的代码..或纠正错误
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<form name="savequestion" action="#" method="post">
<div id="readDatabase">
<table id="questionlist"></table>
</div>
</form>
<script type="text/javascript" src="js/jquery.js"></script>
<script src="js/AIRAliases.js" />
<script src="js/database.js" />
<script type="text/javascript">
$(document).ready(function(){
db = SetupDB();
read_questions();
$('#save').click(function(){
var count_data=$("#countof_record").val();
for (i = 0; i < count_data; i++) {
//get value of question+i
**alert($("#question"+i).val());**
//------------------------------i will get question here, but i only get : first string of question----------------------------
}
});
});
function read_questions(){
dbQuery = new air.SQLStatement();
dbQuery.sqlConnection = db;
dbQuery.text = "SELECT * FROM t_Questions";
try {
dbQuery.execute();
}
catch (e) {
alert(e.message);
}
results = dbQuery.getResult();
//$("#questionlist tbody").empty();
for (i = 0; i < results.data.length; i++) {
row = results.data[i];
var questions=row.ContentQuestion;
alert(questions);
$("#questionlist").append("<tr id=rowQuestion><td>"+(i+1)+"</td><td><input type=hidden name=question"+i+" id=question"+i+" value="+questions+" size=255>"+row.ContentQuestion+"</td><td><select name=answer"+i+" id=answer"+i+"><option name=answerA value=A selected>"+row.OptionAQuestion+"</option><option name=answerB value=B>"+row.OptionBQuestion+"</option><option name=answerC value=C>"+row.OptionCQuestion+"</option><option name=answerD value=D>"+row.OptionDQuestion+"</option></select></td></tr>");
}
$("#questionlist > tbody:last").append("<tr><td><input type=hidden name=countof_record id=countof_record value="+results.data.length+"><input type=submit name=submit value=Save your answer id=save></td></tr>");
}
</script>
</body>
</html>
答
你在所有的属性缺失报价,而你再使用rowQuestion
ID,以科尔等它。 始终将您的属性包含在引号中。
作为替代你目前的做法,check out jQuery templates,为您的代码模板是这样的(我希望你会同意,更容易维护和):
<script id="rowTmpl" type="text/x-jquery-tmpl">
{{each items}}
<tr class="rowQuestion">
<td>${$index+1}</td>
<td><input type="hidden" name="question${$index}" id="question${$index}" value="${$value.ContentQuestion}">${$value.ContentQuestion}</td>
<td>
<select name="answer${$index}" id="answer${$index}">
<option name="answerA" value="A">${$value.OptionAQuestion}</option>
<option name="answerB" value="B">${$value.OptionBQuestion}</option>
<option name="answerC" value="C">${$value.OptionCQuestion}</option>
<option name="answerD" value="D">${$value.OptionDQuestion}</option>
</select>
</td>
</tr
{{/each}}>
<tr>
<td>
<input type="hidden" name="countof_record" id="countof_record" value="${items.length}">
<input type="submit" name="submit" value="Save your answer" id="save">
</td>
</tr>
</script>
要有了这个
for (i = 0; i < results.data.length; i++) {
row = results.data[i];
var questions=row.ContentQuestion;
alert(questions);
$("#questionlist").append("<tr id=rowQuestion><td>"+(i+1)+"</td><td><input type=hidden name=question"+i+" id=question"+i+" value="+questions+" size=255>"+row.ContentQuestion+"</td><td><select name=answer"+i+" id=answer"+i+"><option name=answerA value=A selected>"+row.OptionAQuestion+"</option><option name=answerB value=B>"+row.OptionBQuestion+"</option><option name=answerC value=C>"+row.OptionCQuestion+"</option><option name=answerD value=D>"+row.OptionDQuestion+"</option></select></td></tr>");
}
$("#questionlist > tbody:last").append("<tr><td><input type=hidden name=countof_record id=countof_record value="+results.data.length+"><input type=submit name=submit value=Save your answer id=save></td></tr>");
:使用它,你会替换此
$("#rowTmpl").tmpl({items: results.data}).appendTo("#questionlist");
你可以修复它的尼克..因为..我仍然得到错误 – 2010-11-11 11:06:23
@Frans - 我提供了一个更好的选择上面...你的标记是完全无效的,所以你会得到各种各样的错误。 – 2010-11-11 11:09:25