当在表单中使用多个按钮元素时,我意识到 IE7 发送的是innerHTML 而不是按钮的值。我想一切都好,我只需将我的 PHP 代码更改为这个
<?php
if (isset($_POST['button-name'])) {
add_product_to_cart(2);
}
?>
现在我的老 friend IE6 变得更令人讨厌了。无论我单击哪一个,它都会发送所有按钮元素。例如,我有 3 个名为“mint”、“near-mint”和“standard”的按钮元素。快速的 print_r($_POST)
告诉我所有 3 个名字都已提交。
我猜要解决这个问题需要一些 JavaScript,这不是最优雅的情况,但我可以想象,仍在使用 IE6 的普通用户还不够聪明,无法关闭他们的 JavaScript。
我该如何解决这个问题?
最佳答案
我在 http://www.codecomments.com/JavaScript/message756646.html 找到了解决方案
所有内容均归功于该页面的作者。
根据请求,这是代码
function buttonfix(){
var buttons = document.getElementsByTagName('button');
for (var i=0; i<buttons.length; i++) {
buttons[i].onclick = function () {
for(j=0; j<this.form.elements.length; j++)
if( this.form.elements[j].tagName == 'BUTTON' )
this.form.elements[j].disabled = true;
this.disabled=false;
}
}
}
window.attachEvent("onload", buttonfix);
关于javascript - IE 6 和多个按钮元素都发送它们的名称和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567958/