如何使用ajax获取隐藏在模态中的输入类型的值

时间:2015-10-29 03:45:25

标签: php jquery ajax

美好的一天..
我有模态和模态里面我有div类

<div id="user-details-content" class="modal-body">
   ...
</div>

我使用ajax提供该模态内的内容。
这是提供的内容:

<div id="hidden" class="hidden">
   <input type="hidden" name="id" class="id" id="id" value="1">
   <input type="hidden" value="email@email.com" class="email">
</div>

现在我尝试使用此ajax

获取输入类型=“隐藏”
var id = $(this).parents('#user-details-content').find('.id').val();

但它在我的console.log中返回undefined

有什么建议吗?关于如何获得输入类型=“隐藏”和值?

编辑 - 这是我的ajax功能

function inquiryId(){
    var id = $(this).parents('#user-details-content').find('.id').val();
    console.log(id);
    $.ajax({
        url: 'php_file.php',
        type: 'POST',
        data: { id: id,
        },
        dataType: 'json',
        success: function(result){
            console.log(result);
        }

    });
}

3 个答案:

答案 0 :(得分:0)

可能会出现问题,因为您在加载DOM后加载了html。 我想你有一种事件听众的权利吗?

解决方法可能是这样的:

$(document).on('some_event', '#your_css_selector', function(e){
    // do your stuff here
});

答案 1 :(得分:0)

只想获取输入类型=隐藏值?

无论隐藏还是显示,JQuery都可以获得价值。

$('#id').val();
$('.email').val();

这没关系。

答案 2 :(得分:0)

从代码行:

var id = $(this).parents('#user-details-content').find('.id').val();

如果您知道 id 的确切 class input[type="hidden"] 属性,我建议您使用 $("#id").val() $(".email").val() 。下面是一个展示我的建议的片段,希望它有所帮助。

&#13;
&#13;
$(function(){
  $("button").click(function(event) {
    buttonSubmit_OnClick();
  });
});


function buttonSubmit_OnClick() {
  var message;
  message = "Hello " + $("#id").val() + "! ";
  message += $(".email").val();
  
  $("p").html($("p").html() + "<br>" + message);

  /* $.ajax() code-block goes here */
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="hidden" class="hidden">
  <input type="hidden" name="id" class="id" id="id" value="1">
  <input type="hidden" value="email@email.com" class="email">
  <button>Click me!</button><!-- this is for demo! -->
</div>
<p></p><!-- this is for demo! -->
&#13;
&#13;
&#13;

作为旁注

为了更好地进行客户端代码优化:

  1. $(this) 功能强大,但也是通配符。 jQuery总是更新this,因此,this可能并不总是您期望的那样。最好只在你真的需要时才使用,当你将它的引用存储在变量中时。请记住,凭借强大的力量,责任重大

  2. 基于ID的选择器要快得多,因为它们使用 document.getElementById() 进行处理,而 .children() 是浏览器的原生代码,而不是通过jQuery&#39 s s选择引擎。

  3. 如果可能,具体。避免使用通用选择器,例如.parents()images | videos | reviews | publisherId ---------------------------------------------------------------------------- 0 | 2 | 1 | 91 4 | 5 | 0 | 91 11 | 1 | 4 | 12 0 | 1 | 7 | 12 2 | 1 | 9 | 12
  4. 这是关于optimizing jQuery selectors的更有说服力的阅读。