0

我正在使用一个输入,该输入接受用户输入的数字,并在触发模糊事件时将其转换为美元金额。

我遇到的问题是浏览器似乎保持以前提交的值完好无损,并带有美元符号。因此,如果用户从下拉列表中选择先前输入的值“$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 回答