提问者:小点点

使用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>

是什么导致消息值的第一个实例未定义? 请查找图像以获得更多澄清

第一条消息,未定义

定义了第二个消息并检索该值,并且还定义了其他消息

下面是图像,显示每个消息都有一个值

显示第一和第二消息html代码的图像]4


共1个答案

匿名用户

从你提供的照片来看。 我发现您有favourite-form,它不包含代码上部的任何内容。 所以,它返回的是未定义的。 而较低的div是完美的,正如您所期望的那样,输入是在表单中的。

这行var mssg_id=$(This).find('input[name=“fav”]').val();从表单的输入中获取id,但它的输入不在表单中,因此您遇到了问题。

*注意:-请使用代码,而不是使用图像,如最佳方式在SO中提到的询问和回答