0

これは現在、Json オブジェクトが true を返す場合に私が持っているものであり、クラス error_back を #message に追加します。それ以外の場合は、クラス success_back を追加します。これは正しく機能しますが、ボタンを追加したいので、これを試しました:

無効なコード

 $('#message').append((data.error === true) ? 
 '<input type='submit' name='submit' class='button' id='submit_btn' value='Go back' />' : '' ); 

正常に動作します:

 $('#message').removeClass().addClass((data.error === true) ? 'error_back' : 'success_back').text(data.msg);

ボタンを追加する正しい方法は何ですか?

4

3 に答える 3

4

強調表示されたコードを見ると、奇妙に見えることに気付くでしょう。文字列を囲むために一重引用符を使用していますが、文字列内でも一重引用符を使用しています。

個人的には、HTML 文字列をできるだけ作成しないようにしています。

if (data.error) {
    $('<input />', {
        type: 'submit',
        name: 'submit',
        'class': 'button',  // `class` is a reserved keyword
        id: 'submit_btn',
        value: 'Go back'
    }).appendTo('#message');
}
于 2012-10-26T04:22:39.067 に答える
3

コードに構文エラーがあります。単一引用符をネストしないでください。

$('#message').append( data.error ? '<input type="submit" name="submit" class="button" id="submit_btn" value="Go back" />' : '' ); 
于 2012-10-26T04:18:36.120 に答える
1

引用符があるため、これは無効 です。文字列を囲むために、また属性を囲むために一重引用符を使用しています。したがって、正しく解釈されません。それを回避するには、二重引用符を使用して修正するか、エスケープする必要があります。一重引用符..

$('#message').append(data.error  ? 
 "<input type='submit' name='submit' 
              class='button' id='submit_btn' value='Go back' />" : " " );

\または引用符をエスケープ

$('#message').append(data.error ? 
     '<input type=\'submit\' name=\'submit\' 
                  class=\'button\' id=\'submit_btn\' value=\'Go back\' />' : ' ' );
于 2012-10-26T04:22:45.840 に答える