0

ユーザーが入力した数値を受け取って、blur イベントが発生したときに金額に変換する入力を使用しています。

私が抱えている問題は、ブラウザが以前に送信された値をドル記号でそのまま保持しているように見えることです。したがって、ユーザーが以前に入力した値「$25000」をドロップダウン リストから選択すると、ぼかしイベントが再び発生したときに「$」が追加されるため、「$$25000」が得られます。

これを止めるために、ぼかしに '$' が 2 つ含まれている場合、文字列値を調整しました。

HTML:

<input type="text" value="$5,000" id="dollar-amount-goal" />

Javascript:

var valueOnBlur = $('#dollar-amount-goal').val();

if(valueOnBlur.charAt(1) === '$'){
    valueOnBlur = $('#dollar-amount-goal').val(valueOnBlur.substr(1));
}

console.log(typeof( valueOnBlur ));

文字列チェックを実行したときの上記の typeof ステートメントの結果は、'object' です。「文字列」として出てきた後はいつでも(これが私が欲しいものです)。

"valueOnBlur = $('#dollar-amount-goal').val(valueOnBlur.substr(1));"私の質問:実行時にステートメントが文字列を返すようにするにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

これを変更してみてください:

valueOnBlur = $('#dollar-amount-goal').val(valueOnBlur.substr(1));

これに:

valueOnBlur = $('#dollar-amount-goal').val(valueOnBlur.substr(1)).val();

返される$('#dollar-amount-goal')jQuery オブジェクトではなく、の値が必要です$('#dollar-amount-goal')

于 2012-06-27T00:47:54.890 に答える