2

=P の場合、入力ボックスの最初の文字を削除する関数を作成しようとしています。私たちはバーコード スキャナーを使用しており、部品番号をスキャンするときに P のプレフィックスを使用しています。その場で削除したいと考えています。

<input id="part" onKeyUp="fixP(this.value);"  size="20" type="text" name="part" style="text-transform: uppercase;"/>
<script>
function fixP() {
    $('#part').val($('#part').val().substr(1).replace(/P/,""));
}
</script>

これは、入力に入力したものを継続的に削除するだけです。

どんな助けでも大歓迎です。

4

5 に答える 5

8

on change イベントにもフックしてみませんか? http://jsfiddle.net/SKEwJ/2/

$("#part").change(function(){
    this.value = this.value.replace(/^[Pp]/,'');
});​
于 2012-07-03T16:56:21.647 に答える
3

これは、substr インデックス 1 を選択しているためです。

これを試して:

<input id="part" onKeyUp="fixP(this.value);"  size="20" type="text" name="part" style="text-transform: uppercase;"/>
<script>
function fixP() {
    $('#part').val($('#part').val().replace(/^P/,""));
}
</script>
于 2012-07-03T16:54:51.110 に答える
0
$("#part").change(function(){
    $(this).val($(this).val().substring(1));
});

部分文字列で 2 番目のパラメーターが省略されている場合、ここで説明されているように、残りの文字列が使用されます: http://www.w3schools.com/jsref/jsref_substring.asp

後で不要な部分文字列を避けたい場合は、長さチェックを追加できます。

たとえば、結果は常に 13 文字の長さになります (先頭の「P」を除く)。

$("#part").change(function(){
    if($(this).val().length==14) $(this).val($(this).val().substring(1));
});
于 2012-07-03T17:02:38.210 に答える
0

http://jsfiddle.net/DrWz6/1/

function fixP() {
    var value = $("#part").val();
    if(value.indexOf("p") == 0)
    {
        //alert("p");
        value = value.substring(1);
    }
    $("#part").val(value);
}
于 2012-07-03T17:06:04.207 に答える
0
function fixP() {
    var elm = document.getElementById('part');
    elm.value = elm.value.toUpperCase().indexOf('P') === 0 ? elm.value.substring(1) : elm.value;
}

フィドル

于 2012-07-03T17:19:36.980 に答える