【问题标题】:assigning input value to variable将输入值分配给变量
【发布时间】:2015-04-05 03:27:08
【问题描述】:

我正在尝试将输入值分配给我使用 JSON / PHP 从数据库中检索到的变量。每次我去输出它时,我都会得到一个空白/空值。

我在 javascript 文件的顶部创建了全局变量:

 var theAge=0;


 function startApplication(){
    getData();
    getAge();
    alert(theAge);
 }



 function getData(){
 $.getJSON('http://www.myphpfile.co.uk/myfile.php', function(data) {
                    $.each(data, function(key, val) {
                            $("#userAge").val(val.age);  
                    });
            });
 }



 function getAge(){
    theAge = document.getElementById('#userAge').value;
 }

所以我正在创建变量 theAge,从数据库中获取数据并将其显示在输入字段中,然后尝试使用 getAge 函数获取输入值,然后提醒它检查其是否有效。我只是得到一个空白框。任何人都可以看到任何错误吗?谢谢。

【问题讨论】:

  • document.getElementById('#userAge') 删除标签。
  • 或者,如果你想使用 jQuery $("#userAge").val()

标签: javascript json variables input assign


【解决方案1】:

$.getJSON 是对远程 url 的异步调用,这意味着脚本在获取响应时继续超过该行。

当您的脚本到达getAge();alert(theAge); 时,响应尚未返回,因此theAge 仍为0。

无论您想对从远程调用中获得的值做什么,都需要作为回调函数传入。您已经在其中传递了一个函数(function(data) { $.each...)——您需要对该响应执行的其余操作(例如,getAge() 并提醒该值)也需要在那里处理。

更新

在回调中赋值并提醒它:

$.getJSON('http://www.myphpfile.co.uk/myfile.php', function(data) {
     $.each(data, function(key, val) {
         $("#userAge").val(val.age);  
     });
     theAge = document.getElementById('userAge').value;
     alert(theAge);
});

【讨论】:

  • 感谢您的回复。您如何建议我将 userAge 的值从调用中分配给全局变量 theAge?抱歉,我做 Javascript 的时间不长。
  • 这很好,但是应该从getElementById 调用中删除哈希标记。或者干脆做$('#userAge').val()
猜你喜欢
  • 2012-08-07
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 2023-03-05
  • 2015-05-04
  • 2021-12-27
相关资源
最近更新 更多