2016-03-01 33 views
0

有没有人知道这件事,以及如何防止它。Firefox重新排列表单输入属性的顺序

我通过AJAX使用PHP文件中的表单填充div。 输入元件被写为在PHP

echo ('<input type="text" name="court_type_name" id="court_type_name_input-' . $itemID . '" class="dataField" data-rule-length="4,6" data-rule-required="true" />'); 

下面我做形式验证基于属性的顺序上。后来的属性具有更高的优先级。例如,这种情况'必需'优先于长度在之间

在Chrome Inspect中,我看到以下内容。我最初编写的方式是什么,代码是按照预期工作的。

<input type="text" name="court_type_name" id="court_type_name_input-9" class="dataField" data-rule-length="4,6" data-rule-required="true"> 

但是在Firefox检查中,我看到以下内容。请注意,属性的顺序已更改。这导致'数据规则长度'优先于'数据规则要求'。

截图FF的检查:

enter image description here

除了这一点。还有更多的不一致。

如果我复制/粘贴检查窗口,我得到一个完全不同的属性顺序。不同于我的原始版本,与FF Inspect中的视觉效果不同。但代码与视觉表示一致。

<input name="court_type_name" id="court_type_name_input-9" class="dataField" data-rule-length="4,6" data-rule-required="true" type="text"> 

回答

0

根据定义,属性是无序的。您不能依赖它们出现的顺序。您必须以其他方式对这些信息进行编码。例如另一个数据属性。

data-rules="length required" data-rule-length="4,6" data-rule-required="true" 
0

据我所知,它无法关闭。这是FF显示它的方式。
如果您右键单击并选择Edit as HTML它应显示原始顺序。
属性的顺序不应该影响结果,但同样,它只是以重新排序的方式显示。

相关问题