$(“#input”)。val()在使用$ .post()时返回未定义

时间:2019-02-02 03:21:21

标签: javascript jquery html

我觉得无法解决这个问题很愚蠢,但是我一直在$('#input')。val()行上发出未定义的发布请求。有人可以帮我解决这个问题吗?

<html>
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
      let sr = $("#input").val();
      $(document).ready(function(){
        $("button").click(function(){
          $.post("http://localhost:8080/", {subreddit: sr}, function(data, status){
            alert("Data: " + data + "\nStatus: " + status);
          });
        });
      });
    </script>
  </head>
  <body>
    <div id='content' style="height:100%, width:100%">
        <input id='input' type="text" placeholder='enter subreddit'/>
        <button>Search</button>
      </form>
    </div>
  </body>
</html>

3 个答案:

答案 0 :(得分:1)

这是因为脚本的该部分在加载DOM之前正在运行。将其移动到// myPage.html //... <ion-content padding> <iframe [class]="webPage" [name]="samplePage" [src]="sanitizer.bypassSecurityTrustResourceUrl{{myURL}}"> </iframe> </ion-content> //myPage.ts //... myURL: any; constructor(public navController: NavController, public navParams: NavParams, private sanitizer: DomSanitizer) { this.myURL = 'https://example.com'; } 中:

$(document).ready()

答案 1 :(得分:1)

单击按钮时,脚本的let sr = $("#input").val();部分应运行。

将其移动到点击处理程序中,如下所示:

$(document).ready(function() {
  $("button").click(function(){
    let sr = $("#input").val();
    $.post("http://localhost:8080/", {subreddit: sr}, function(data, status){
      alert("Data: " + data + "\nStatus: " + status);
    });
  });
});

答案 2 :(得分:0)

我的问题实际上与后端有关。它一直返回未定义的状态,因为我没有调用.toString()方法。感谢您的帮助。