Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 此脚本在Internet Explorer中中断_Javascript_Internet Explorer - Fatal编程技术网

Javascript 此脚本在Internet Explorer中中断

Javascript 此脚本在Internet Explorer中中断,javascript,internet-explorer,Javascript,Internet Explorer,我们已经写了这个脚本。本质上,它将输入限制在表单字段中,仅限于数字 然而,我们得到了一个ie。“value”的错误为null或不是对象。请给我一些关于修复的建议 function numbersonly(e, decimal) { var key; var keychar; if (window.event) { key = window.event.keyCode; } else if (e) { key = e.which; } else { return true; }

我们已经写了这个脚本。本质上,它将输入限制在表单字段中,仅限于数字

然而,我们得到了一个ie。“value”的错误为null或不是对象。请给我一些关于修复的建议

function numbersonly(e, decimal) {
var key;
var keychar;

if (window.event) {
   key = window.event.keyCode;
}
else if (e) {
   key = e.which;
}
else {
   return true;
}
keychar = String.fromCharCode(key);

if ((key==null) || (key==0) || (key==8) ||  (key==9) || (key==13) || (key==27) ) {
   return true;
}
else if ((("0123456789").indexOf(keychar) > -1)) {
   return true;
}
else if (decimal && (keychar == ".")) { 
  return true;
}
else
   return false;
}
function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}
表单元素是:

input id="landprice" name="landprice" size="50" type="text" class="medium" onKeyPress="return numbersonly(event, false)" onKeyDown="limitText(this.form.limitedtextfield,this.form.countdown,8);" 
onKeyUp="limitText(this.form.limitedtextfield,this.form.countdown,8);" maxlength="8"

不确定ie不喜欢什么。

您设置了变量
十进制的值吗?我看到了它被引用的位置,但没有看到它被设置的位置

添加:无需担心,它是函数的一个参数。

您正在将“this.form.limitedtextfield”发送到limitText函数,然后尝试访问属性“value”,根据我的测试,如果页面上没有id为“limitedtextfield”的输入字段,您将得到您描述的错误

根据评论进行编辑: 试着这样做:

<input id="countdown"/>
<input id="landprice" name="landprice" size="50" type="text" class="medium" onKeyPress="return numbersonly(event, false)" onKeyDown="limitText(this,this.form.countdown,8);" 
onKeyUp="limitText(this,this.form.countdown,8);" maxlength="8"/>
function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    }
}
好的,我们把它修好了:

谢谢各位

function numbersonly(e, decimal) { var key; var keychar; if (window.event) { key = window.event.keyCode; } else if (e) { key = e.which; } else { return true; } keychar = String.fromCharCode(key); if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) { return true; } else if ((("0123456789").indexOf(keychar) > -1)) { return true; } else if (decimal && (keychar == ".")) { return true; } else return false; } function limitText(limitField, limitCount, limitNum) { if (limitField.value.length > limitNum) { limitField.value = limitField.value.substring(0, limitNum); } } 仅函数编号(e,十进制){ var键; var-keychar; if(window.event){ key=window.event.keyCode; } 若否(e){ key=e.which; } 否则{ 返回true; } keychar=String.fromCharCode(键); 如果((键==null)| |(键==0)| |(键==8)| |(键==9)| |(键==13)| |(键==27)){ 返回true; } 否则如果((((((((“0123456789”).indexOf(keychar)>-1)){ 返回true; } 如果(十进制&&(keychar==”){ 返回true; } 其他的 返回false; } 函数limitText(limitField、limitCount、limitNum){ 如果(limitField.value.length>limitNum){ limitField.value=limitField.value.substring(0,limitNum); } } 和表单字段更改为:

input id="landprice" name="limitedtextfield" size="50" type="text" class="medium" onKeyPress="return numbersonly(event, false)" onKeyDown="limitText(this.form.limitedtextfield,this.form,8);" onKeyUp="limitText(this.form.limitedtextfield,this.form,8);" maxlength="8"/ 输入id=“landprice”name=“limitedtextfield”size=“50”type=“text”class=“medium”onKeyPress=“returnnumbersonly(event,false)”onKeyDown=“limitText(this.form.limitedtextfield,this.form,8);” onKeyUp=“limitText(this.form.limitedtextfield,this.form,8);“maxlength=“8”/
您是否有一个使用此功能的公共页面URL?使我调试您的代码更快更容易。最常见的IE问题是尾随逗号(即在其上断开)。但这不是这里的问题。不是公开的,但我们确实有一个直播页面。这是一个开发项目,当前无法在此处放置公共链接。请将其粘贴到internet上可用的开发服务器上。亚马逊将免费为您提供一个开发服务器。看看我如何分享链接给你,而不让它成为公开可见的lol.well斑点。那么应该将id更改为limitText还是>limitField?当前输入id为(input id=“landprice”)认为更改为:input name=“limitedtextfield”更改了输入名称现在我们得到的“undefined”为空或不是对象,然后您仍然缺少id为“countdown”的输入元素。错误已经消失,但现在我们有两个输入表单字段。另外,这完全破坏了代码。嗯