2012-04-03 16 views
-1

私は、テキストをいくつかの正規表現を持つ関数を使用してフォーマットするテキストボックスを用意しています。関数はテストされ、正常に動作します。 テキストを再フォーマットするために特定のテキストボックスにfocusoutイベントをバインドする必要があるコードを追加するとき、関数はトリガされません。Jquery Focusoutがトリガーしない

$(document).ready(function() { 
    $('#PostcodeTextBox').focusout(function() { 
     $('#PostcodeTextBox').val(PostcodeFormatting($('#PostcodeTextBox').val())); 
    }); 
    $('#PostcodeTextBox').blur(function() { 
     $('#PostcodeTextBox').val(PostcodeFormatting($('#PostcodeTextBox').val())); 
    }); 
}) 


function PostcodeFormatting(pc) { 
    var reg = /^([1-9]\d{3})\s?([a-z]{2})$/i; 
    var postcode = $.trim(pc); 
    if (postcode && postcode.match(reg)) { 
     return postcode.replace(reg, "$1$2").toUpperCase(); 
    } 
    else { 
     return "Postcode incorrect"; 
    } 
}; 

何が間違っているのか、何を忘れているのですか。

+0

をあなたはPostcodeFormatting機能を貼り付けることはできますか? – dekomote

答えて

1

これらの2つのイベントバインディングを組み合わせて、動作するかどうか試してください。私はおそらく、イベントのバブリングのためにぼかしに傾くだろうが、入力がフォーカスを失ったときに両方が発射されるはずです。

$(function() { 
    $('#PostcodeTextBox').on('blur', function() { 
     $(this).val(PostcodeFormatting($(this).val())); 
    }); 
}) 

ここは私にとっては(テスト済みの)ものです。ブラーやFocusoutも同様に動作します:

スクリプト:

$(function() { 
    $('#PostcodeTextBox').on('blur', function() { 
     $(this).val(PostcodeFormatting($(this).val())); 
     console.log('hit'); 
    }); 
}); 

function PostcodeFormatting(pc) { 
    ... 
} 

をスペルとケース感度のためだけでなく、あなたのHTMLをチェックしてください:

<input type="text" id="PostcodeTextBox" /> 
+0

上記のように、イベントはまったくトリガーされません。私はそれを保証するためにconsole.logステートメントを追加しました。 –

+0

上記の私の編集された答えを見てください。テストされ、動作します。 –

+0

サンプルプログラムではすべてのことがうまくいくように見えます。スクリプトの他の部分で何が間違っているかを見つけなければならない。どうもありがとう。 –

関連する問題