0

私は現在、jQueryMobile用のblankContentSimpleDialogを実装しています。これはhtmlです:

<li>
   <a href="#page1" id="searchdialog" data-theme="" data-icon="search">Search Routes
   </a>
</li>

そしてこれはjQueryです:

<script type="text/javascript">
        $(document).delegate('#searchdialog', 'click', function() {
          $('<div>').simpledialog2({
            mode: 'blank',
            headerText: 'Route Search',
            headerClose: true,
            blankContent : 
            '<div id="content" data-role="content"><label>Enter Your Search:</label><div data-role="fieldcontain"><fieldset data-role="controlgroup">' +
            '<label for="textinput7">Start</label><input id="start" placeholder="" value="" type="text"/></fieldset></div>'+
            '<div data-role="fieldcontain"><fieldset data-role="controlgroup"><label for="textinput9">End</label>'+
            '<input id="end" placeholder="" value="" type="text" /></fieldset></div>'+
            '<a data-role="button" data-transition="fade" data-theme="b" href="#page6" data-icon="search" data-iconpos="left" onclick="alert($("#start").val(),$("#end").val())">Search</a>'
          })
        });
    </script>

このエラーの原因を理解することはできません。

キャッチされないSyntaxError:予期しないトークン}

このエラーは、[ルートの検索]リンクをクリックした場合にのみ発生します。これにより、jqueryのエラーであると思われます。興味深いことに、私がそれを作れば

onclick = "alert()"

それ以外の

onclick = "alert($("#start ")。val()、$("#end ")。val())"

それからそれは動作します、しかし私は次の線に沿って他の変種を持っている必要があります:

onclick = "location.href =" / search /?start = "+ $("#start ")。val()+"&end = "+ $("#end ")。val()"

私がこれをどのように達成できるかについての考えは?どんな迅速で汚い解決策でもうまくいくでしょう。ありがとう

4

1 に答える 1

2

あなたのライン:

'onclick="alert($("#start").val(),$("#end").val())"'

エラーの原因です。onclick属性に競合する引用符があります(および文字列以外のコンマ!)

このハードコードされた情報を含むhidden/display:none要素を作成し、それを単に参照する方がよいでしょう。

または、htmlが作成される@時間にハンドラーを割り当てます(既に委任されたハンドラーと同様)

編集:基本的にこれを取る:

'<a data-role="button" data-transition="fade" data-theme="b" href="#page6" data-icon="search" data-iconpos="left" onclick="alert($("#start").val(),$("#end").val())">Search</a>'

代わりにこれを行います:

'<a class="some-wonky-alert" data-role="button" data-transition="fade" data-theme="b" href="#page6" data-icon="search" data-iconpos="left" >Search</a>'

$('a .some-wonky-alert').on('click', function()
{
alert($("#start").val() + $("#end").val());
});

委任された季節@あなたの都合

edit2:またはもちろん、引用符をエスケープしようとすることもできますが、それでもうまくいくかもしれませんが、従事している悪い慣行を解決することはできません:)

于 2012-04-23T21:11:55.937 に答える