在更改和加载时更新一些字段

时间:2017-03-06 15:11:13

标签: javascript php jquery html

我们有以下脚本在更改下拉列表时运行 - 根据所选的货币代码更新价格。这基本上获取了下拉列表的值,并更新了页面上文本中的 priceamm preicecurr 字段。

<script>
function run() {
    var f = document.getElementById("dropPrice");
    priceamm.innerHTML  = f.options[f.selectedIndex].value;
    var e = document.getElementById("dropPrice");
    pricecurr.innerHTML =  e.options[e.selectedIndex].text;
}

HTML

<select id="dropPrice" onchange="run()" class="fa-select">
  <option value = "a">aaa</option>
  <option value = "b">bbb</option>

问题 现在,我们还希望在加载页面时将下拉列表加载到其中一个选项(选定)( onload )。我们可以填充文本中的变量,但不能填充显示选项 bbb 的下拉列表。在PHP中这很容易,但我们有点迷失javascript。我们尝试在这些行上加载但不起作用:

document.getElementById("dropPrice").value = "<?php echo $geo_price ;?>";

使用jQuery这可能更容易,但再一次没有运气:

window.onload = function() {
    jQuery(document).ready(function($){
      document.getElementById('dropPrice').find('option[value=<?php echo $geo_price ;?>]').attr('selected','selected');
    });
    }

感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

jQuery选择器部分不正确。你正在混合普通的JS和jQuery。当你调用document.getElementById('dropPrice')时,会返回一个常规的DOM元素,但是你会调用find,这是一个在jQuery元素上使用的jQuery方法。所以,你需要包装第一部分来返回一个像这样的jQuery元素:

$(document.getElementById('dropPrice'))
.find('option[value="b"]').attr('selected', true);

或者,首先通过jQuery选择它,如:

$('#dropPrice [value="b"]');

然而,你的第一个例子:

document.getElementById("dropPrice").value = "b";

应该工作。这让我想知道PHP回应的值是否正确和/或是否抛出其他JS错误会导致代码无法运行。