从jquery.load()获取选定的html值

时间:2018-01-25 16:11:29

标签: javascript jquery html

我使用jquery.load()来获取HTML代码。这个html是一个里面有js的表单。

我的问题,我希望在此表单中获取输入的选定值,但它返回""即使有选定的值..

主-page.html中:

url = "http://url-to-get-info-div";    
$('#info').load(url);

Main-page.html然后在

中有一个表单和脚本
<div id="info">
<select name="nature" title="" required="" class="form-control" id="id_nature">
  <option value="">---------</option>
  <option value="a-specifier">A spécifier</option>
  <option value="perte">Perte</option>
  <option value="dommage">Dommage</option>
  <option value="retard" selected="">Retard</option>
  <option value="non-livre">Contestation livraison</option>

  </select>
</div>
<script type="text/javascript">
----some script who need $("#id_nature)---
    function calcul_indemnisation(nature_litige = $("#id_nature").val()){
        ---some work who use id_nature value---
        return montant_indemnisation
     }
    $("#calcul_indemnisation").click(function(){
        montant_indemnisation = calcul_indemnisation();
    }
</script> 

问题是当点击按钮&#34; #calcul_indemnisation时,返回值不正确,因为id_nature值未正确获取

2 个答案:

答案 0 :(得分:0)

我解决了!事实上,我在代码中有另一个具有相同id的select!所以与id名称冲突

答案 1 :(得分:-1)

使用.on()连接生成的元素,或使用.load()语法并将一个函数作为参数。

function calcul_indemnisation(){
  var option = $('#id_nature').find(':selected');
  
  var value = option.val();
  var text = option.text();
  
  //perform the calculations
  
  return value;
};

//.load(url, function)
$('#info').load('url-you-need', function(){
  //create click event in #calcul_indemnisation
  $('#calcul_indemnisation').click(function(){
    console.clear();
    console.log('triggered with load .click(): ' + calcul_indemnisation());
  });
});

//create click event on #calcul_indemnisation inside #info.
$('#info').on('click','#calcul_indemnisation',function(){
  let montant_indemnisation = calcul_indemnisation();
  console.log('triggered with .on() click: ' + montant_indemnisation);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="info">
<select name="nature" title="" required="" class="form-control" id="id_nature">
  <option value="">---------</option>
  <option value="a-specifier">A spécifier</option>
  <option value="perte">Perte</option>
  <option value="dommage">Dommage</option>
  <option value="retard" selected="">Retard</option>
  <option value="non-livre">Contestation livraison</option>

  </select>
  
  <input type="button" id="calcul_indemnisation" value="Click me!"/>
</div>