首页 > 解决方案 > 使用 jquery 检索值的第一个实例未定义

问题描述

我正在尝试使用 jquery 检索每个消息 ID,但是对于用户拥有的消息的第一个实例,消息 ID 未被检索且未定义,但对于所有其他消息,它工作正常。

var mssg_id = $(this).find('input[name="fav"]').val(); // this is what i am doing to retrieve the messages id

下面是我的jQuery代码:

$(document).on('submit', '.favourite-form', function(e) { 
  e.preventDefault(); //prevent a normal postback and allow ajax to run instead
  var mssg_id = $(this).find('input[name="fav"]').val();
  $.ajax({ 
    data: mssg_id, 
    type: "post", 
    url: "favorite.php?message="+mssg_id, 
    success: function(data) { 
      alert("Data Save: " + mssg_id); 
    },
    error: function(jqXHR, textStatus, errorThrown) { //gracefully handle any errors in the UI
      alert("An ajax error occurred: " + textStatus + " : " + errorThrown);
    }
  }); 
}); 

HTML

<form class="favourite-form" name="favform" method="POST" >
  <input type="submit" name="fav"  value="<?php echo $row['msgid']; ?>" />
</form>

是什么导致消息值的第一个实例未定义?

标签: javascripthtmljqueryajax

解决方案


好的,根据您提供的图像。我发现您favourite-form的代码上部不包含任何内容。所以,它返回未定义。同时,较低的 div 是完美的,因为您应该期望输入在表单内。

这一行var mssg_id = $(this).find('input[name="fav"]').val();从表单中获取 id,input但它的输入在表单之外,所以你遇到了问题。

*注意:- 请使用代码而不是使用在 SO 中提出答案的最佳方式中提到的图像


推荐阅读