2013-10-24 19 views
0
j("input[name='textFriendEmail']").bind('keyup change',function (e){ 
        var value = j(this).val(); 
        j('#toEmail').val(value); 
       }); 

js文件包含此代碼,但其不觸發。這段代碼有問題嗎?無法在js文件中觸發鍵盤更改

我試圖把它放在seprate文件中,並鏈接到頁面增益,但沒有運氣。 pl幫助。

+1

你可以發佈你的HTML標記?另外,如果你使用jQuery 1.7+,你應該使用[.on](http://api.jquery.com/on/)而不是.bind – CodingIntrigue

+1

這個代碼在'j(document).ready() '? – Barmar

+0

@Barmar沒有它不在j(文件)。已經 – Coder

回答

2

您需要將代碼包裝在DOM準備好的事件中。由於您使用jQuery的1.10,你也應該.on更換你的綁定功能:

j(function() { 
    // This is only fired when the DOM is ready 
    j(document).on("keyup change", "input[name='textFriendEmail']",function (e){ 
     // This is fired on keyup/change of the textFriendEmail input 
     var value = j(this).val(); 
     j('#toEmail').val(value); 
    }); 
}); 

從jQuery文檔:

在jQuery 1.7中,。對()方法是首選事件處理程序 附加到文件

0
j(document).ready(function(){ 
    j("input[name='textFriendEmail']").on('keyup change',function (e){ 
     var value = j(this).val(); 
     j('#toEmail').val(value); 
    }); 
}); 
+1

這將如何幫助?你所做的只是把'bind'改成'on',但它們是等價的。 – Barmar

+0

對不起。我看到我遺漏了j(document).ready wrap。現在更新。 –

1

你的代碼的方法工作正常。檢查它是否包裝在DOM就緒功能中。它應該在裏面。

j(document).ready(function(){ 
    j("input[name='textFriendEmail']").bind('keyup change',function (e){ 
        var value = j(this).val(); 
        console.log(value); 
        j('#toEmail').val(value); 
       }); 
}); 

這裏的工作演示:http://jsfiddle.net/kVNuj/