【问题标题】:getting input from last input-areas in an array of dynamically generated text inputs从动态生成的文本输入数组中的最后一个输入区域获取输入
【发布时间】:2012-02-05 07:52:53
【问题描述】:

在这段代码中,每当您单击“确定”按钮时,都会在其下方显示一个数字,并且该数字旁边是一个输入字段。这种情况会发生 10 次,每次都会显示一个新数字以及一个输入字段。我要做的是:每当点击 OK 按钮时,都会显示内容,并且最后一个用户输入存储在 var temp 中并进行检查,我将其附加到“开始”。

    var NumberOfQuestions= 10;
    var questionCounter = 1;
    var score=0;

    //create the Problem array
    var QuestionArray = [];
    QuestionArray.push(0);
    for (i=1; i<=NumberOfQuestions; i++){
        var randomNumber = Math.floor(Math.random()*110);
        QuestionArray.push(randomNumber);
        }//end for loop



    $(function() {
    $("#ok").click(function() {
        if(questionCounter <= NumberOfQuestions){
            $("#ok").after("<p>" + QuestionArray[questionCounter]  + "<input type='text' size='1' class='r'/></p>");
            questionCounter++;}//end if
          var temp = (".r").value();
          $("#hg").append(temp);        
        });//end click function
    });


});

开始

好的

问题是变量 temp 中没有存储任何内容。我试过 var temp = (".r").val();但这也无济于事。请帮忙

【问题讨论】:

  • $(".r").val(); //缺少 $ 也可以尝试设置 $(".r").val("like this 看看它是否存储任何东西");
  • 哎呀......在这里忘记了。也不适用于 $。

标签: jquery html textinput


【解决方案1】:

如果您在添加新输入后取值temp 为空,因为输入仍然为空。 在添加新输入之前获取您生成的最后一个输入,如下所示:

$(function() {
$("#ok").click(function() {
    var temp = $(".r").last().val();
    $("#hg").append(temp); 
    if(questionCounter <= NumberOfQuestions){
        $("#ok").after("<p>" + QuestionArray[questionCounter]  + "<input type='text'          size='1' class='r'/></p>");
        questionCounter++;}//end if               
    });//end click function
});

【讨论】:

  • 是的。您建议的代码的问题是,当我单击确定按钮时,现在什么也没有发生!
  • 你使用 val() 还是 value()? val() 是对的。(我错了)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多