从输入中获取值字符串隐藏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"); 
+0

你可以修复它的尼克..因为..我仍然得到错误 – 2010-11-11 11:06:23

+0

@Frans - 我提供了一个更好的选择上面...你的标记是完全无效的,所以你会得到各种各样的错误。 – 2010-11-11 11:09:25