Domanda

Ricevo un errore "Oggetto previsto" per qualche strano motivo a causa di jquery, e questo non "invia" il modulo né inserisce i dati nel database.

senza jquery, i dati potrebbero essere inseriti nel database. ma ora no.

ho usato jquery principalmente per convalidare i controlli asp.net.


roosteronacid, le validazioni funzionano perfettamente e anche la proprietà id è la stessa. l'invio non sta eseguendo il codice lato server e non riesco a capire quale sia il problema.

EDIT:

questo è il codice jquery:

 <script type="text/javascript">
        $(document).ready(function() {
            // add custom validation methods
            $.validator.addMethod('phone', function(value, el, params) {
                return this.optional(el) || /^[0-9,+,(), ,]{1,}(,[0-9]+){0,}$/.test(value);
            }, 'Please enter a valid phone number');

            $.validator.addMethod('numbers', function(value, el, params) {
                return this.optional(el) || /^[0-9]+$/.test(value);
            }, 'Invalid entry. Only Numeric is allowed.');


            $.validator.addMethod('domainurl', function(value, el, params) {
                return this.optional(el) || /^(http\:\/\/(?:www\.)?[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*(?:\.[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*)*\.[a-zA-Z]{2,4}(?:\/)?)$/.test(value);
            }, 'Please enter a valid domain url');


            $.validator.addMethod('selectone', function(value, element) {
                return this.optional(element) || (value.indexOf("none") == -1);
            }, 'Please select an option.');



            $("#form1").validate({
                debug: true,
                rules: {
                    txt_name: {
                        required: true,
                        minlength: 2
                    },
                    txt_cmp: {
                        required: true,
                        minlength: 2
                    },
                    txt_tel1: {
                        phone: true,
                        required: true,
                        minlength: 3

                    },
                    txt_tel2: {
                        phone: true,
                        required: false,
                        minlength: 3

                    },
                    txt_mob: {
                        phone: true,
                        required: false,
                        minlength: 9

                    },
                    txt_email: {
                        required: true,
                        email: true
                    },

                    txt_domname: {
                        required: true,
                        domainurl: true
                    },

                    radiobt_domain: "required",

                    ddl_yremail: {
                        required: true,
                        selectone: true
                    },
                    ddl_email: {
                        required: true,
                        selectone: true
                    },

                    txt_space: {
                        required: true,
                        numbers: true

                    },
                    txt_calfr: {
                        required: true
                    },
                    txt_calto: {
                        required: true
                    }  


            },
            messages: {
                txt_name: {
                    required: "This field is required",
                    minLength: "Please enter a valid name"
                },
                txt_cmp: {
                    required: "This field is required",
                    minLength: "Please enter a valid commpany name"
                },
                txt_tel1: {
                    required: "This field is required",
                    minLength: "Please enter a valid telephone number"

                },
                txt_tel2: {
                    minLength: "Please enter a valid telephone number"
                },
                txt_mob: {
                    minLength: "Please enter a valid mobile number"

                },
                txt_email: {
                    email: "Please enter a valid email address",
                    required: "This field is required"
                },

                txt_domname: {
                    required: "This field is required"
                },
                radiobt_domain: "Select the Hosting Type"
            }

        });
    });
    </script>

c'è qualcosa di sbagliato nel codice?

dice l'oggetto atteso alla riga 559. Ho controllato il file jquery.validate.js e questo è il codice che mostra:

addWrapper: function(toToggle) {
            if ( this.settings.wrapper )
                toToggle = toToggle.add( toToggle.parents( this.settings.wrapper ) );
            return toToggle;
        }

il codice jquery mostra tutti gli errori nei posti giusti, ma una volta corretto, non invia i dati.

il plugin che sto usando:

http://bassistance.de/jquery-plugins/jquery-plugin- validazione /

È stato utile?

Soluzione

L'oggetto previsto si verifica quando si tenta di accedere a un oggetto non definito, non referenziato o erroneamente errato. Scopri quale oggetto è previsto. Usa Firefox Firebug per eseguire il debug di JavaScript o esegui il debug con IE per ottenere un oggetto che il runtime non è in grado di trovare ....

Altri suggerimenti

Ho risolto questo problema facendo riferimento correttamente al file JQuery. L'ho avuto in una sottodirectory e non aveva il percorso corretto.

rispondi qui: il pulsante di invio non attiva il codice lato server

'debug' dovrebbe essere impostato come falso.

Suppongo che l'errore sia nell'uso del plug-in di convalida jQuery. Prova a convalidare un solo controllo ASP.NET. Ciò renderà più facile individuare l'errore:

$("#form1").validate({
    rules: {
       id_of_control_you_know_exists_in_the_rendered_html: {
            required: true,
            minlength: 2
        }
    }
});

Un'altra possibilità potrebbe essere quella di utilizzare i controlli ASP.NET in un controllo utente. In tal caso, la proprietà id del controllo di input HTML renderizzato è diversa da quella impostata nella pagina aspx.

Ho avuto lo stesso problema ma sul nostro server di gestione temporanea. Il confronto dei file ha mostrato che erano gli stessi e che l'hosting degli stessi file su siti diversi non aveva alcun problema, quindi doveva essere il sito specifico su cui stavamo mettendo i file. Il colpevole dopo la risoluzione dei problemi era che abbiamo impostato un'impostazione del file Footer.html nelle proprietà del sito Web in IIS, quindi il server lo stava iniettando all'interno dello script al momento del rendering. Pertanto infrangere qualsiasi buon codice conforme. Abbiamo disattivato la proprietà footer sull'impostazione IIS - bingo!

Devo anche affrontare questo problema. ma nel mio caso ero jquery versione prob è lì. Ho messo l'ultima versione e funziona greate in IE.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top