5

目立たない検証を使用するフォームがあります。最近、小さな mce を使用するようにテキスト領域を変更しましたが、検証が機能しません。ここ
からソリューションを使用しようとしましたが、何も起こりません。

$('#form input[type=submit]').click(function () {

決して実行しません。ここに私が持っているもの:

@using (Html.BeginForm("Create", "UserAd", FormMethod.Post))
{
...
@Html.TextAreaFor(x => x.Description, new { id = "description" })        
...
<input type="submit" value="Create"/>
...

これはJSコードです:

$(document).ready(function () {

        tinyMCE.init({
            mode: "textareas",
            theme: "advanced",
            skin: "o2k7",
            height: "250",
            plugins: "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",


            theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist",
            theme_advanced_buttons2: "",
            theme_advanced_buttons3: "",
            theme_advanced_buttons4: "",
            theme_advanced_toolbar_location: "top",
            theme_advanced_toolbar_align: "left",
            theme_advanced_resizing: false
        });

        function toggleEditor(id) {
            if (!tinyMCE.get(id)) {
                tinyMCE.execCommand('mceAddControl', false, id);
            }
            else {
                tinyMCE.execCommand('mceRemoveControl', false, id);
            }
        }


        // new
        $(function () {
            var tinymce = $('#Description');

            tinymce.tinymce({
                setup: function (e) {
                    e.onInit.add(function () {
                        tinymce.css({
                            position: 'absolute',
                            height: 0,
                            width: 0,
                            top: -100
                        }).show();
                    });
                }
            });

            $('#form input[type=submit]').click(function () {
                alert('ss');
                tinyMCE.triggerSave();
            });
        });
        // makes form field highlighting work with bootstrap's css
        $.validator.setDefaults({
            highlight: function (element, errorClass, validClass) {
                $(element).closest('.control-group').addClass('error');
            },
            unhighlight: function (element, errorClass, validClass) {
                $(element).closest('.control-group').removeClass('error');
            }

        });
        $(function () {
            // makes form field highlighting work with bootstrap's css on post backs
            $('.input-validation-error').each(function (i, element) {
                $(element).closest('.control-group').not('.error').addClass('error');
            });
        });
4

4 に答える 4

3

セレクターで「#form」の ID を指定しています。セレクターから # を削除してみてください。

例えば、

$('form input[type=submit]').click(function () {
      alert('ss');
      tinyMCE.triggerSave();
});

さらに、コードを正しく読んでいれば、tinyMCE は動的要素です。クリック イベントを on 関数にバインドすることができます。

例えば、

$("body").on("click","#yourFormID", function(e){
    your click stuff here
}
于 2012-07-22T15:57:26.787 に答える
0

tinyMceプラグインを適用するとTextAreaが非表示になり、デフォルトの非表示ファイルは検証されないため、このデフォルトを変更する必要があります。すでに追加しようとしましたか:

$.validator.setDefaults({
ignore: ''

});

于 2012-07-28T08:28:28.867 に答える
0

あなたが得るエラーはまさにそれが言うことです。jQuery の前に Tiny MCE (プラグインではなく、本物) をロードする必要があります。それが問題かもしれません。

tiny_mce.js が実際にダウンロードされているか確認できますか? このブログもチェックしてみてください。Tiny MCE にも問題があった人からのものです。

于 2012-07-25T17:50:02.400 に答える