js校验输入框中只能输入两位小数的有效数值和根据特定字符查找所在位置

最近在开发外汇结汇需求中需要对输入的金额数字进行控制校验,现总结如下:

首先把根据特定字符查找所在位置的方法贴出来,这个在数值校验中需要用到。

//根据特定字符查找所在位置
function find_str(str,f_str,n){
var arr_str;
var tmp_str=0;
var arr_str=str.split(f_str);
if(arr_str.length<n){n=arr_str.length}
for(i=0;i<n;i++){
  tmp_str=arr_str[i].length+tmp_str;
}
return tmp_str+i-1;
}


//校验金额
function input_checkAmount() {
if ((input_amt.value).indexOf(".") > 0) {
var str = (input_amt.value).substr(find_str((input_amt.value), ".", 1) + 1, (input_amt.value).length);
if (str.indexOf(".") > 0) {
error_TXTFXJH.innerHTML = “请输入正确的金额”;
input_amt.value = "";
input_amt.focus();
} else {
if (str.length == 0) {
}else if (str.length >2)
{
error_TXTFXJH.innerHTML = "金额只支持两位小数";
input_amt.value = input_amt.value.substr(0,input_amt.value.length-1);
input_amt.focus();
}else if(!new top.StringCtrl(input_amt.value).isValidAmount()) {
error_TXTFXJH.innerHTML = top.langcur.oPlsInputRightAmt;
input_amt.value = "";
input_amt.focus();
}
}
}
 if((input_amt.value).indexOf("00") ==0){
error_TXTFXJH.innerHTML =“请输入正确的金额”;
input_amt.value = "";
input_amt.focus();
}else {
if (!new top.StringCtrl(input_amt.value).isValidAmount()) {
error_TXTFXJH.innerHTML = “请输入正确的金额”;
input_amt.value = "";
input_amt.focus();
}
}


html代码:

<tr>
<td align="right" class="Tip_Content"><span id="oFxTerminateAmt"></span>:&nbsp;&nbsp;</td>
<td align="left"><input type="text" class="input_short3" name="input_amt" id="input_amt" maxlength="12" onclick="javascript:ShowKeyboard();" onkeyup="return input_checkAmount()"/></td>
</tr>

具体的页面还请以具体项目为准。大体的代码就是这样了,方法和方向都是这样。谢谢参阅。

猜你喜欢

转载自blog.csdn.net/lm891108647/article/details/79025784