2017-07-27 58 views
0

我如何可以访问的输入文本字段,其中DOM后propably加载的值之后加载输入的值?访问被该DOM

我与单张工作的时刻和插件及牡丹输入字段,我不知道,如何访问它。

如果我试试这个:

$('#myTextbox1').on('input', function() { 
    alert($('#myTextbox1').val()); 
}); 

我没有得到任何结果。我猜,jQuery无法处理创建的输入字段。

我的HTML看起来像这样:

@extends('layouts.app') 

@section('head') 
<link rel="stylesheet" type="text/css" href="{{ asset('css/leaflet/leaflet.css') }}"> 
<link rel="stylesheet" type="text/css" href="{{ asset('css/leaflet/leaflet-search.css') }}"> 
@ensection 

@section('content') 

<div class="col-md-8 col-md-offset-2 form-container"> 

<div id="map-adress"></div> 

<div class="panel panel-default marker-panel"> 
    <div class="panel-heading">Create a post</div> 
    <div class="panel-body"> 
     <div class="col-md-8 col-md-offset-4"> 
      <p>Insert the adress of the marker position<br> 
       (You can move the marker on the map to the right position).</p> 
     </div> 

     <div class="form-group"> 
      <label for="findbox-adress" class="col-md-4 control-label find-label">Marker Location</label> 
      <div class="col-md-6"> 
       <div id="findbox-adress"></div> 
      </div> 

      <div class="col-md-2"> 
       <button type="submit" class="btn btn-primary user_marker_btn"> 
        Validate 
       </button> 
      </div> 
     </div> 
    </div> 
</div> 

<div id="user_marker_adress" class="panel panel-default"> 
    <div class="panel-heading">Validate the marker adress</div> 
    <div class="panel-body"> 

     <form class="form-horizontal" method="POST" action="{{ route('userposts.create') }}"> 
      {{ csrf_field() }} 

      <div class="form-group"> 
       <label for="a_street" class="col-md-4 control-label">Street</label> 
       <div class="col-md-6"> 
        <input id="a_street" type="text" class="form-control" name="a_street" required> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label for="a_street_no" class="col-md-4 control-label">Street No.</label> 
       <div class="col-md-6"> 
        <input id="a_street_no" type="text" class="form-control" name="a_street_no" required> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label for="a_zip_code" class="col-md-4 control-label">Zip Code</label> 
       <div class="col-md-6"> 
        <input id="a_zip_code" type="text" class="form-control" name="a_zip_code" required> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label for="a_state" class="col-md-4 control-label">State</label> 
       <div class="col-md-6"> 
        <input id="a_state" type="text" class="form-control" name="a_state" required> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label for="a_country" class="col-md-4 control-label">Country</label> 
       <div class="col-md-6"> 
        <input id="a_country" type="text" class="form-control" name="a_country" required> 
       </div> 
      </div> 

      <div class="form-group"> 
       <div class="col-md-8 col-md-offset-4"> 
        <button type="reset" class="btn btn-danger"> 
         Clear 
        </button> 
        <button type="submit" class="btn btn-primary"> 
         Next 
        </button> 
       </div> 
      </div> 

     </form> 

    </div> 
</div> 

@endsection

@section('scripts') 
<script type="text/javascript" src="{{ asset('js/leafleat/leaflet.js') }}"></script> 
<script type="text/javascript" src="{{ asset('js/leafleat/leaflet-search.js') }}"></script> 
<script type="text/javascript" src="{{ asset('js/leafleat/marker-adress.js') }}"></script> 
@endsection 

ID为 “findbox-住址” 的DIV触发插件,将与输入创建表单,我无法访问。

希望,有人得到了我的问题的爱迪尔...

编辑: OK,我已经在这个元素,并用它工作的ID,但只有文本中找到一个ID,我有键入。该插件给了我一个下拉选择(像ajax自动完成),我可以选择一个无序列表与一些李的。但在那里我无法获得价值?如果有人点击自动填充(li's),我该如何获得价值?

我尝试:

$(".user_marker_btn").click(function(){ 
    console.log($("#searchtext9").val()); 
}); 
+0

使用事件代表团 –

回答

1

上动态创建的元素,使用事件代表团附加事件侦听器。

附加事件监听到DOM的负载存在的父元素,然后传递您希望将事件委托给元素:

$('body').on('input', '#myTextbox1', function() { 
    alert($('#myTextbox1').val()); 
}); 
0

首先,你给出的代码不向右看。请参考jQuery的手册:http://api.jquery.com/on/ 这可能是:

$("body").on("click", "input#myTextbox1" function() { 
    console.log($(this).val()); 
}); 

正如你所说,findbox-住址“与ID的格‘’触发的插件,这将与输入创建表单” 如果可以跟踪该事件的DIV“findbox-ADRESS”获得点击或触发时,你可以很容易地检查表格是否已经在DOM中添加或不然后使用$检查输入字段(“输入#myTextbox1”) .VAL();

或者,如果你不能跟踪装载形式的情况下,你需要在表格是越来越加载到DOM中有一个功能随时查询。这可能是使用setTimeout()或框架/库的任何其他方法。最后在表单加载时停止跟踪。