0

次のような ajax を使用してフォームを送信する ASP.NET MVC Web ページがあります。

function ValidateFormAndAjaxSubmit(formId, callingElement) {

    if (IsNotDblClick(callingElement.id)) {
        var _form = $("#" + formId);

        var validator = _form.validate();
        var anyError = false;

        anyError = !_form.valid();

        if (anyError) {
            window.latestClick = '';
            return false; // exit if any error found    
        }

        $.post(_form.attr("action"), _form.serialize(), function (data) {

            if (data.success && data.redirectUrl.length > 0) {
                window.location.href = data.redirectUrl;
            }
            else {

                var isValid = validateResponse(_form, data);

                window.latestClick = '';
            }
        })
    }
}

フォーム内のすべてのコントロールは、Html.TextBoxFor などのヘルパーで生成され、これはうまく機能します。

問題は、jquery プラグイン (Select2) が通常のテキスト ボックスを次のようなリストに変換することです。

<div class="floatLeft">
            <label class="controlTitleContainer" for="Url">Taggar</label>
            <br style="clear:both;">
            <div class="select2-container select2-container-multi bigdrop" id="s2id_txtTagBox" style="width: 408px">    <ul class="select2-choices" style="">  <li class="select2-search-choice">    <div>Film                </div>    <a href="#" onclick="return false;" class="select2-search-choice-close" tabindex="-1"></a></li><li class="select2-search-choice">    <div>Hund                </div>    <a href="#" onclick="return false;" class="select2-search-choice-close" tabindex="-1"></a></li><li class="select2-search-field">    <input type="text" autocomplete="off" class="select2-input valid" tabindex="0" style="width: 10px;">  </li></ul></div><input style="width: 408px; display: none;" class="bigdrop" id="txtTagBox" name="Tags" type="text" value="">
        </div>

ここでは、追加されたタグが ul リストのように表示されているのに対し、テキスト ボックスは何も表示しないように設定されていることがわかります。この場合、Film と Hund をリストに追加しました。

これらの値を (上記の ajax 呼び出しで) サービスに送信する必要がありますが、問題はどのようにですか?

4

1 に答える 1

0

ドキュメントからわかることから、select2はテキストボックスではなく選択リストで動作するように設計されています。テキストボックスの代わりに選択リストを生成してみてください。

例の「Multi Valued Select Boxes」のソースを見てください。基になるマークアップは選択ボックスですが、プラグインはテキストボックスのように見せるために div を生成します。

于 2013-01-23T20:59:53.967 に答える