2015-06-21 88 views
1

我正在嘗試設置輸入樣式和ul-li樣式選擇(如下面的樣式)。如果點擊li,我可以成功更改輸入文本的值。例如,如果我點擊第二個li上的第一個li或第二個,則#main值將爲1。當輸入文本發生變化時檢測

<div> 
    <input id="main" type="text" disabled placeholder="Select..."> 
    <ul id="main-list> 
     <li>1</li>  
     <li>2</li> 
    </ul> 
</div> 

現在,我試圖檢測#main輸入onchange的值,以便我可以將#子列表的內容相應地更改爲#main的值。

<script> 
var mymap = {"1": ["a1", "b1", "c1"] 
      ,"2": ["a2", "b2", "c2"] 
      }; 
</script> 
<div> 
    <input id="sub" type="text" disabled placeholder="Select..."> 
    <ul id="sub-list"> 
     <li>1</li> 
     <li>2</li> 
    </ul> 
</div> 
<script> 
$("#main).bind("change", function() { 
    // Reset the #sub-list 
    alert($(this).val()); 
}); 
</script> 

我遇到的問題是,我無法檢測到的電平變化#main價值,即使#main值被改變了#子列表的內容復位。任何人都可以幫助解釋這個問題嗎?

+1

使用'on'而不是'bind'。另外''(「#main)'應該是'$(」#main「)' – lmgonzalves

+1

你的代碼錯了''(」#main)'改成'$(「#main」)' – brothers28

+0

另外,'this '意思是'window',因爲它不在'onchange'屬性中。改用'event.target'。 –

回答

2

加入你的邏輯在點擊數

$("#main-list li").bind("click", function() { 
    $("#main").val($(this).html()); 
    $("#main").css('background-color','#FC0'); 
    $(this).parent().append('value changed'); 

});

http://jsfiddle.net/dshun/ud4r1p84/

相關問題