0

「記事の編集」ページには、著者の姓と名、および値としての authorId を表示する選択リストがあります。記事のコンテキストや見出しなど (別のメソッドで取得) と同様に、このメソッドは特定の記事の authorId も保持します。

選択リストの最初のオプションをデフォルトにするのではなく、記事の著者をオプション リストで選択する必要があります。

私が持っているもの:

エコー''; // オプション リスト $authors_name の著者名をループします

            foreach($authors_name as $nameRow){

                echo'<option class="authorId" value = "' . $nameRow['AuthorID'] . '">'. $nameRow['FirstName'].'

'.$nameRow['姓'] .''; }

          echo'</select>';

そしてjquery:

var currID = ('#selectAuthor').val();

    if(('.authorId').val() == currID){
          $('.authorId').addClass('new_class')
          $('.new_class').prop('selected',true);  
    }

また

var currID = ('#selectAuthor').val();

    if($("select option[value=currID]").attr('selected','selected'));

どんな助けでも大歓迎です。私がやろうとしていることは明らかです。前もって感謝します

通常の入力だけで単純化し、jsfiddle.netでチェックしました ここにHTMLがあります

';

<option value = "2">Name val 2</option>
<option value = "5">Name val 5</option>
<option value = "1">Name val 1</option>

そしてここにjqueryがあります

var currID = $('#selectAuthor').val(); if($("select option[value='+currID+']").prop('selected',true));</p>

それでも、selected="selected" を value="1" のオプションに適用しません

4

1 に答える 1

0

selectedサーバーコードに を追加しない理由がわかりません。あなたのjQueryに関する限り、いくつかの問題があります。

まず、ブラウザ コンソールでエラーをスローする構文の問題があります。コンソールを見るだけで、このステップを省略できます

var currID = ('#selectAuthor').val();

次のようにする必要があります。

var currID = $('#selectAuthor').val();

次の構文の問題は、文字列に渡すときの 2 番目のバージョンにcurrIDあります。文字列に連結された変数としてではなく、文字列テキストとして追加しています。

if( $("select option[value='+currID+']").attr('selected','selected'));

attrただし、代わりにnot getting it. Useprop` メソッドを設定し、ブール値を返すため、これはまだ問題です。

 if( $("select option[value='+currID+']").prop('selected'));

最初のバージョンの問題は次のとおりです。

  if(('.authorId').val() == currID)

構文をもう一度 (ブラウザ コンソールを使用してください!!!) ...missing $. if適切な構文を使用しても、要素のコレクションですべての値を 1 つにチェックすることはできません。最初の値のみを返します。それは、20 人の異なる人に 1 つの電話番号を要求するようなものです。メソッドを使用してすべてのコレクションをループし、each()それぞれをチェックするifか、使用する必要がありますfilter()

 $('.authorId').filter(function(){
       return this.value == currID;
 }).prop('selected',true)
于 2012-11-22T04:28:11.123 に答える