处理不同浏览器的JavaScript问题
我遇到的问题是,我的代码在JavaScript中工作正常,但在Firefox或safari中工作不正常,我想知道为什么。我要做的是,我有一个循环,通过每个元素,并根据文本框中的变量,只是想提醒一些东西。正如我前面所说,此代码在IE中运行良好。下面是代码: 以下是文本框的示例:处理不同浏览器的JavaScript问题,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,我遇到的问题是,我的代码在JavaScript中工作正常,但在Firefox或safari中工作不正常,我想知道为什么。我要做的是,我有一个循环,通过每个元素,并根据文本框中的变量,只是想提醒一些东西。正如我前面所说,此代码在IE中运行良好。下面是代码: 以下是文本框的示例: <asp:TextBox ID="txtMac" runat="server" req="yes" errMessage="Mac"/> for (a = 0; a < theForm.elements
<asp:TextBox ID="txtMac" runat="server" req="yes" errMessage="Mac"/>
for (a = 0; a < theForm.elements.length; a++) {
if (theForm.elements[a].type == "text" && theForm.elements[a].req == "yes") {
alert("Made it here")
}
}
对于(a=0;a
尝试使用document.getElementsByTagName,因为我相信这在所有浏览器中都受支持
var linkList = document.getElementsByTagName("a");
用于读取自定义属性。看
所以不是
(theForm.elements[a].type==“text”&&theForm.elements[a].req==“yes”)
使用
(theForm.elements[a].getAttribute('type')==“text”和&theForm.elements[a].getAttribute('req')==“yes”)您应该使用
var theForm=getElementById(“theForm”)
而不是直接调用表单。只有Chrome和IE将元素ID添加到javascript全局范围
您应该使用getAttribute()
来获取属性的值,因为只有IE有这个快捷方式
试试这个。
这就是你的答案 我不知道asp标签。我假设req是一个属性,所以这应该满足您的要求,只需在属性等于您的要求时发出警报,我使用一个快捷数组按标记名保存所有找到的元素,正如James所说,它更交叉
var a = [];
a = document.getElementsByTagName("input");
for(var i=0; i < a.length; i++){
if (theForm.elements[i].getAttribute('type')== "text" && theForm.elements[i].getAttribute('req') == "yes" ){
alert("Made it here wtih" + theForm.elements[i])
}
}
var a=[];
a=document.getElementsByTagName(“输入”);
对于(变量i=0;i
表单的是什么?你能把源代码(asp创建的)放到一个小提琴演示中吗?我们能有更多的信息吗?它适用于哪个版本的IE,不适用于哪个版本的其他浏览器?您是否只尝试匹配if语句的一部分,即单独等于text或req==yes?您是否尝试了OR语句而不是AND?您使用的是哪个库?你能给我们一个由你的asp标签生成的HTML标记的例子吗?版本是firefox是6.0,IE是7,Safari是5.1。是的,我自己尝试过(form.elements[a].req==“Yes”),发现这就是问题所在,但不明白为什么。我已经提醒了它,但是它没有定义,但是我查看了源代码,并在文本框中看到了变量,所以我不明白发生了什么。在这里,重新问同样的问题是不可接受的行为。如果你想引起大家对你的问题的注意,两天后你将被允许提问。您还可以添加其他信息,这可能会使您的问题更容易理解和回答。您可以在此处添加您的答案吗?当你的链接腐烂时,你的答案将毫无用处。。。