1

私は基本的に2つのドロップダウンメニューを実行しています。1つは次に表示する選択を決定します。次に、2番目のドロップダウンメニューが表示され、そこから新しいフォームが表示されます。コードを簡略化しましたが、考え方は同じです。私の問題は、2番目のものが想定されているコードを表示しないことです。

HTML

<select id="change1" on change="changeForm(this.value);">
 <option> Select Option </option>
  <option value="c"> Option 1</option>
  <option value="p"> Option 2</option>
 </select>
  <div id="form"></div>  <div id="changep"></div>

Javascript

function changeForm(x)
{
      if(x=='c')
      {
         $('#form').html('It Works');
       }

      if(x=='p')
       {
         var code = ' <select id="option2" onselect="placeHtml(this.value);"><option>Select Message</option><option value="1m">Message 1</option><option value="2m">Message 2</option></select>';
         $('#form').html(code);
        }
}

function placeHtml(x)
 {
    if(x=='1m')
     {
         $('#changep').html('This will work');
     }

     if(x=='2m')
     {
         $('#changep').html('This is a different message');
     }
 }

今私の問題は、最初のドロップダウンメニューを使用すると、結果は期待どおりですが、2番目のドロップダウンメニューを使用すると...何も変わらないということです。onselectの代わりにonchangeを使用した場合、選択を変更した後、空白のドロップダウンメニューが表示されます。ここで何が問題なのかわかりません。誰か助けてもらえますか?jquery1.8.2の使用

4

3 に答える 3

0

option2select要素でonselectをonchangeに変更してみてください。

于 2012-10-24T03:49:39.810 に答える
0

Change1とoption2の両方でonselectをonchangeに変更すると、機能します

<select id="change1" onchange="changeForm(this.value);">

if(x=='p')
{
     var code = ' <select id="option2" onchange="placeHtml(this.value);"><option>Select Message</option><option value="1m">Message 1</option><option value="2m">Message 2</option></select>';
     $('#form').html(code);
}

このデモをチェックしてください

于 2012-10-24T03:53:59.207 に答える
0

これを変更してくださいbecozonselect属性は、次の場合に使用できます。

 ///The onselect attribute can be used with: 
 <input type="file">, <input type="password">, <input type="text">, <keygen>, and <textarea>.

  function changeForm(x)
  {
      if(x=='c')
      {
         $('#form').html('It Works');
       }
     else if(x=='p')
       {
         var code = ' <select id="option2" onchange="placeHtml(this.value);"><option>Select Message</option><option value="1m">Message 1</option><option value="2m">Message 2</option></select>';
         $('#form').html(code);
        }
  }

function placeHtml(x)
 {
    if(x=='1m')
     {
         $('#changep').html('This will work');
     }

     if(x=='2m')
     {
         $('#changep').html('This is a different message');
     }
 }</script>
于 2012-10-24T04:44:39.677 に答える