System.Web.UI コントロールに基づくカスタム Web コントロールの dll があります。ユーザーがEnterキーを押すと、代わりにタブイベントが発生するようにするように求められました。私はこれをやった:
Me.Attributes.Remove("onkeydown")
Me.Attributes.Add("onkeydown", "if(event.keyCode == 13) {event.keyCode = 9; return event.keyCode;}")
If Me.TextMode = Web.UI.WebControls.TextBoxMode.MultiLine Then
Me.Attributes.Remove("onkeydown")
End If
ただし、IE でのみ動作します。FF と Chrome でテストしたところ、enter イベントによってポストバックが生成されました。私は他の解決策を試しました:
<script type="text/javascript">
function catchEnter(e){
var theKey=0;
e=(window.event)?event:e;
theKey=(e.keyCode)?e.keyCode:e.charCode;
if(theKey=="13"){ // 13 is the key code for ENTER
// here is where your code will go
//return false; // return false if you want to...
//...halt submission of form (call this function onsubmit)
}
}
</script>
function checkKey(e) {
var event = window.event ? window.event : e;
if (true) {
alert(event.keyCode)
}
}
また:
function displayunicode(e){
var unicode=e.keyCode? e.keyCode : e.charCode
しかし、Attributes.Add を使用して JavaScript を挿入する必要があります。Attributes.Add を使用して JavaScript 関数全体を書き留めることができますか? これらの関数を使用しようとすると、「スクリプト」タグを無視して、javascript コードのみを配置します。私はここで何か間違っていますか?
これらのコードのどれが機能しますか? (IE、FF、Chrome)