Firefox认为< fieldset>是一种形式元素; Chrome没有 [英] Firefox thinks <fieldset> is a form element; Chrome doesn't
问题描述
我试图摆脱字段和调整数字,它的工作,但我喜欢fieldset!此外,我不能只是一个数组,并遍历它,因为这些字段是按Tab顺序调整,我想相应地打印它们。任何建议吗?
在尝试验证后,我发现确实需要XHTML Strict的字段集。我已经将元素存储在一个数组中,如下所示:
$ p $ var $ $ function(id){return document.getElementById (ID); }
函数check(){
var x = $(myForm);
var user = new Array();
user [0] = x.elements [0] .value;
user [1] = x.elements [2] .value;
user [2] = x.elements [4] .value;
user [3] = x.elements [1] .value;
user [4] = x.elements [3] .value;
user [5] = x.elements [5] .value;
然后使用另外几个数组检查它们并在弹出窗口中显示结果: p>
var answers = new Array();
答案[0] =sample1;
答案[1] =sample2;
答案[2] =sample3;
答案[3] =sample4;
答案[4] =sample5;
答案[5] =sample6;
var display = new Array();
for(var i = 0; i <6; i ++){
if(user [i] ==){
display [i] =您什么也没输入。
}
else if(user [i] == answers [i]){
display [i] =Correct!;
else {
display [i] =错误,正确的答案是\+ answers [i] +\。
$ b alert(display [0] +\ n+ display [1] +\\\
+ display [2] +\\\
+ display [3] +\ n+ display [4] +\ n+ display [5]);
我想你会使用ID更好:
< form ...>
< input ... id =q0/>
< input ... id =q1/>
< input ... id =q2/>
< / form>
所以你可以写这个JavaScript代码:
var answers = new Array();
答案[0] =sample1;
答案[1] =sample2;
答案[2] =sample3;
答案[3] =sample4;
答案[4] =sample5;
答案[5] =sample6;
var display = new Array(); (var i = 0; i <6; i ++){
var user = $('q'+ i).value;
if(user ==)
display [i] =你什么也没输入。
else if(user == answers [i])
display [i] =Correct!;
else
display [i] =错误,正确答案是\+ answers [i] +\。
}
alert(display [0] +\ n+ display [1] +\\\
+ display [2] +\\\
+ display [3] + \ n+ display [4] +\ n+ display [5]);
您的代码也可以得到很多改进:
var answers = [sample1,sample2,sample3,sample4,sample5,sample6];
var display = new Array(); (var i = 0; i <6; i ++){
var user = $('q'+ i).value;
if(user ==)
display.push(You entered nothing。);
else if(user == answers [i])
display.push(Correct!);
else
display.push(错误,正确答案是\+ answers [i] +\。);
}
alert(display.join('\\\
'));
In my JavaScript program, I get values from a form through its elements and then print them in order, in an alert. This works fine in Firefox, but in Chrome the order is wacky and it ends with the "Submit" button.
I tried getting rid of the fieldset and adjusting the numbers, and it worked, but I liked the fieldset! Also, I can't just make an array and iterate through it because the fields are tab-order adjusted and I want to print them accordingly. Any suggestions?
Upon trying to validate I found that I do indeed need the fieldset for XHTML Strict. I've been storing the elements in an array, like so:
var $ = function (id) { return document.getElementById(id); }
function check() {
var x = $("myForm");
var user = new Array();
user[0] = x.elements[0].value;
user[1] = x.elements[2].value;
user[2] = x.elements[4].value;
user[3] = x.elements[1].value;
user[4] = x.elements[3].value;
user[5] = x.elements[5].value;
And then checking them using another couple of arrays and displaying the results in a pop-up:
var answers = new Array();
answers[0] = "sample1";
answers[1] = "sample2";
answers[2] = "sample3";
answers[3] = "sample4";
answers[4] = "sample5";
answers[5] = "sample6";
var display = new Array();
for (var i=0;i<6;i++) {
if (user[i] == "") {
display[i] = "You entered nothing.";
}
else if (user[i] == answers[i]) {
display[i] = "Correct!";
}
else {
display[i] = "Wrong. The correct answer is \"" + answers[i] + "\".";
}
}
alert(display[0] + "\n" + display[1] + "\n" + display[2] + "\n" + display[3] + "\n" + display[4] + "\n" + display[5]);
}
I think you'll be better off using IDs:
<form ...>
<input ... id="q0" />
<input ... id="q1" />
<input ... id="q2" />
</form>
So you can write this JavaScript code:
var answers = new Array();
answers[0] = "sample1";
answers[1] = "sample2";
answers[2] = "sample3";
answers[3] = "sample4";
answers[4] = "sample5";
answers[5] = "sample6";
var display = new Array();
for (var i=0;i<6;i++) {
var user = $('q' + i).value;
if (user == "")
display[i] = "You entered nothing.";
else if (user == answers[i])
display[i] = "Correct!";
else
display[i] = "Wrong. The correct answer is \"" + answers[i] + "\".";
}
alert(display[0] + "\n" + display[1] + "\n" + display[2] + "\n" + display[3] + "\n" + display[4] + "\n" + display[5]);
Your code can receive a lot of improvement, too:
var answers = [ "sample1", "sample2", "sample3", "sample4", "sample5", "sample6" ];
var display = new Array();
for (var i=0;i<6;i++) {
var user = $('q' + i).value;
if (user == "")
display.push( "You entered nothing." );
else if (user == answers[i])
display.push( "Correct!" );
else
display.push ( "Wrong. The correct answer is \"" + answers[i] + "\"." );
}
alert(display.join('\n'));
这篇关于Firefox认为< fieldset>是一种形式元素; Chrome没有的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!