1

私のページのURLは

http://somain.com/test.php?id=1&mview=5

ログイン後、上記のURLに選択肢の名前と画像が表示されます。選択画像を追加するには、[新しいエントリの追加]ボタンをクリックする必要があります。削除するには、[削除]ボタンをクリックするだけです。ただし、削除ボタンとファイルアップロードセクションはChromeでは正常に機能し、IE8では機能しません。

選択肢の画像を追加するためにjavascript関数を使用しました。しかし、すべてのjs関数はchromeで正常に機能しますが、IE8では機能しません。これはファイルアップロードセクションを削除するための簡単なコーディングです。

function addnewchoice(val)
{
var remove = document.createElement("input");
remove.setAttribute("type", "button");
remove.setAttribute("value", "Remove");
remove.setAttribute("onclick", "Remover("+ val +")");
remove.setAttribute("class", "removechoice");
remove.setAttribute("name", removename);
}

function Remover(idval)
{
document.forms['choiceadd']['imageshow'+idval].style.display="none";
document.forms['choiceadd']['choicefile'+idval].style.display="none";
document.getElementById('fileuploadover'+idval).style.display="none";
document.forms['choiceadd']['choicename'+idval].style.display="none";
document.forms['choiceadd']['choicename'+idval].value="";
document.forms['choiceadd']['remove'+idval].style.display="none";
document.getElementById('br'+idval).style.display="none";
}

誰かが私がこの問題を解決するのを手伝ってください。読んでくれてありがとう、そして私がこの問題を解決するのを手伝ってください

4

1 に答える 1

3

ここでの最初の回答によると、IEは動的に作成されたDOM'a'要素でonClickイベントを許可しません-要素のonclick属性が動的に変更された場合、IE8はクリックイベントハンドラーを自動的にバインドしません。つまり、HTMLでタグのonclick属性を設定していますが、ブラウザーはその属性を実際のイベントハンドラーに変換していません。

交換してみてください

remove.setAttribute("onclick", "Remover("+ val +")");

var removeFunc = function() { Remover(val) };
if (!remove.addEventListener) //Old IE
  remove.attachEvent("onclick", removeFunc);
else //Other browsers
  remove.addEventListener("click", removeFunc );

これは、ブラウザがバインドによって反応することを期待して属性を設定するのではなく、実際にはクリックイベントハンドラを直接バインドします。

于 2012-12-03T11:39:05.737 に答える