私はjavascriptを使用して、あるドロップダウンから選択したオプションを取得し、その情報を別のドロップダウンに配置しています。コードはSafari、Chrome、Firefoxで正常に機能しますが、IEでは失敗します。誰かがコードをクロスブラウザ互換にするのを手伝ってもらえますか?
function showTeams(weekNum) {
var selectedItem = document.getElementById('pick'+weekNum);
var a = document.getElementById('week'+weekNum).selectedIndex;
if (a != 0) {
var str = document.getElementById('week'+weekNum).value;
var away = str.match(/^(.*)(?= at)/);
var home = str.match(/at(.*)/);
selectedItem.options[0].text = away[0];
selectedItem.options[0].value = away[0];
selectedItem.options[1].text = home[1];
selectedItem.options[1].value = home[1];
document.getElementById('week'+weekNum).style.visibility = "none";
selectedItem.style.visibility = "visible";
selectedItem.selectedIndex = 0;
}
}
IEで失敗し、var str = document.getElementById('week'+weekNum).value;
空白str
として返され、正規表現とその下のすべてが壊れます。任意の洞察と助けをいただければ幸いです。
編集:関連するHTMLを追加します。
<form class="pick" name="picks" action="./resources/send_picks.php" method="post">
<p>Week 1: <select class="week" name="week1" id="week1" onchange="javascript:showTeams('1');">
<option></option>
<option>Dallas Cowboys at N.Y. Giants</option>
<option>Indianapolis Colts at Chicago Bears</option>
<option>New England Patriots at Tennessee Titans</option>
<option>Buffalo Bills at N.Y. Jets</option>
<option>Washington Redskins at New Orleans Saints</option>
<option>Jacksonville Jaguars at Minnesota Vikings</option>
<option>Atlanta Falcons at Kansas City Chiefs</option>
<option>Philadelphia Eagles at Cleveland Browns</option>
<option>St. Louis Rams at Detroit Lions</option>
<option>Miami Dolphins at Houston Texans</option>
<option>San Francisco 49ers at Green Bay Packers</option>
<option>Seattle Seahawks at Arizona Cardinals</option>
<option>Carolina Panthers at Tampa Bay Buccaneers</option>
<option>Pittsburgh Steelers at Denver Broncos</option>
<option>Cincinnati Bengals at Baltimore Ravens</option>
<option>San Diego Chargers at Oakland Raiders</option>
</select>
<select class="pick" name="pick1" id="pick1" style="visibility:hidden" onchange="javascript:cancel('1')">
<option></option>
<option></option>
<option>Cancel</option>
</select>
現在、IE8でテストが行われています。