gpt4 book ai didi

javascript - 输入类型 = 'tel' 在 IE 中不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 04:10:48 24 4
gpt4 key购买 nike

我已经设法解决了这个问题,但作为一个 javascript 涉猎者,我只是想知道它为什么会发生,以及是否有办法让 IE 识别输入类型 =“tel”。

背景故事:我需要在调查网站托管的调查中的一些文本输入旁边添加单位($/分钟/年)。在我将类型更改为“tel”(以便为移动设备获得合适的数字键盘)之前,以下代码一直有效。之后它仍然可以在 FF、Safari 和 Chrome 中使用,但不能在 IE 中使用。我已经评论了我是如何修复它的。

 SurveyEngine.addOnload(function()
{
/*Place Your Javascript Below This Line*/
var questionId = this.questionId;
var inputs = $(questionId).getElementsByTagName('input');
var telId = "QR~"+questionId;

//get numeric keypad for mobile devices
// this is where I put "if (isIE()==false){" to get around the problem

document.getElementById(telId).type = 'tel'; //IE tells me this argument is invalid

//append "minutes"
for(var x = 0; x<inputs.length;x++){
var input = inputs[x];
if(input.id != undefined && input.type =='tel') //obviously in my fix added "|| type=='text'" to pick up the IEs
{
var id = input.id;
$(id).up().innerHTML = $(id).up().innerHTML + "minutes";
}}
});

html元素是

<div class='QuestionBody'>
<div class='ChoiceStructure'>
<input type='TEXT' autocomplete="off" id='QR~QID18' value='' class='InputText' name='QR~QID18~TEXT' style="width: 80px;" >
</div>
</div>

关于为什么 IE 在这里卡住的任何想法都会很有趣并且可能有用。

最佳答案

很遗憾,IE 不支持TYPE=TEL之前IE10 .在标记中使用这种类型是完全有效的:

<input id="test" type="tel" />

然而,这将被忽略,IE 将默认为 text类型。在脚本中设置此类型将导致错误,因为 IE 不将此视为有效类型。因此,您必须首先检测您的浏览器是否支持它。你可以这样做:

function TelTest()
{
var test = document.getElementById('test');
return test.type == 'tel';
}

如果TelTest()返回 true,这意味着浏览器没有恢复到默认 text输入并理解 tel类型。

工作 JSFiddle .

关于javascript - 输入类型 = 'tel' 在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com