0

我的页面上有两个 html 元素。一个是下拉菜单,另一个是文本字段(用作自动完成)。

     <select id="match_engine_brand" name="match_engine[brand]" class="hidden-field"><option value="">Select Brand</option><option value="3">addidas</option>
        <option value="5">cat</option>
        <option value="2">nike</option>
        <option value="4">panther</option>
        <option value="6">tower</option></select>

而文本字段是

     <input class="string required ui-autocomplete-input" id="match_engine_shoe_model" name="match_engine[shoe_model]" placeholder="select model of shoe using autocomplete" required="required" size="50" type="text" autocomplete="off"> 

我的 cofeescript 代码如下

     $(document).ready ->

       $("#match_engine_brand").change ->
           window.flag_value =  $(this).val()
           alert(window.flag_value) #value display in alert

       $('#match_engine_shoe_model').autocomplete
         source: "/user/match_shoes/shoes?id="+window.flag_value
         select: (event, ui) -> $("#match_engine_shoe_model").val(ui.item.id)

在自动完成功能中

window.flag_value       #give me undefined value    
$('#match_engine_brand :selected').val()   #give me undefined value 

我如何在自动完成功能中获取下拉值。

感谢帮助

4

1 回答 1

2

您需要有一个初始值window.flag_value。否则,如果您不更改#match_engine_branch,则此 var 没有任何价值。这就是 的原因undefined value

解决方法是先定义这个var

$(document).ready ->
  window.flag_value = "something"
  ...

但是我认为没有必要使用全局变量。检查它的功能应该可以工作。

$('#match_engine_shoe_model').autocomplete ->
  dropdown_value = $("#match_engine_brand").val() ? "something"
于 2013-06-14T13:54:16.680 回答