所以,我正在努力更新10-12岁的代码,使Chrome兼容,我已经停滞不前了。无论出于何种原因,当我输入一个数字然后单击“fillPO”按钮时,它不会更新任何内容,而是将“null”放入应该填充的框中。这在Internet Explorer上按预期工作。是否有一般规则可以让它在chrome上运行?
<xsl:template name="control-row">
<xsl:if test="$orderApprove='true' and $isSuperUser='false' and $archiveView='false' ">
<td nowrap="true" colspan="10">
<input type="button" name="servlet" value="Approve" onClick="return approveOrder();"> checked orders</input>
<xsl:if test="/poursxml/OrderedFields/Field='PO'">
Fill PO number across orders:
<input type="text" name="genericPO" id = "genericPO" size="15" maxlength="30"/>
<input type="button" value=" Fill PO " onclick="fillPO()"/>
</xsl:if>
</td>
</xsl:if>
</xsl:template>
这是javascript中的fillPO()。
function fillPO()
{
if(!anySelected())
alert('Please select an order first.');
else
{
dfa = document.getElementsByName('orderNumber');
len = dfa.length;
var ix = 0;
for(ix=0; ix<len; ix++)
{
if(dfa[ix].name == 'orderNumber')
{
if(dfa[ix].checked == true)
{
el_id = dfa[ix].id;
position = el_id.substring(11);
document.getElementById('PONumber' + position).innerHTML = '<input size="15" maxlength="30" type="text" name="PONumber" value="' + document.getElementById('genericPO').getAttribute('value') + '"></input>';
}
}
}
}
}
答案 0 :(得分:2)
疯狂猜测:将document.getElementById('genericPO').getAttribute('value')
替换为document.getElementById('genericPO').value
。
但我们确实需要查看一个示例,以便我们在Chrome中重现该问题。
答案 1 :(得分:1)
因为在您发布的代码片段中没有明显的问题(至少对我而言)。 这里有一些Debug提示(可能有点帮助):
console.log("test point");
或alert()
次调用。 (..可以继续..)