jQuery验证显示未接收的类型错误

发布于 2025-01-30 19:56:42 字数 8152 浏览 3 评论 0原文

尝试实现jQuery验证,因为我需要能够验证隐藏的输入。

我准备就绪文档中的插件初始化,但是在提交时,我会收到以下错误:

Uncaught TypeError: Cannot read properties of undefined (reading 'type')
    at a.validator.elementValue (jquery.validate.min.js:4:10471)
    at a.validator.check (jquery.validate.min.js:4:11074)
    at a.validator.checkForm (jquery.validate.min.js:4:7116)
    at a.validator.form (jquery.validate.min.js:4:6816)
    at HTMLFormElement.<anonymous> (jquery.validate.min.js:4:1146)
    at HTMLFormElement.dispatch (vendors.min.js:1:391918)
    at HTMLFormElement.f.handle (vendors.min.js:1:389932)

如果相关,我正在使用posticalizecss和laravel 8。该表格以单击时触发的模态为单位,但为了进行测试,我始终显示它。这是我初始化插件的方式:

    $(document).ready(function() {
        $("#bookingForm").validate();
    });

这是形式:

         <form class="col s12 m12 l12" id="bookingForm" role="form">
            <div class="modal-content" id="modalContent">
                <h4>{{ $post->name }}</h4>
                <h6 class="" style="font-size: 14px;margin-top: 0px;">{{ $post->organizer->name }}</h6> 
                <div class="row center"> 
                    <div class="row center">
                        <div class="input-field col s12 m6 l2 offset-l4">
                            <select id="city_ids" name="city_ids" class="browser-default">
                                <option value="">Plats</option>
                                @foreach($post->cities as $city)
                                    <option value="{{ $city->id }}">{{ $city->name }}, {{ $city->county->name }}</option>
                                @endforeach                                
                            </select>
                        </div>             
                        <div class="input-field col s12 m6 l2">
                            <select id="time_ids" name="time_ids" class="browser-default">
                                <option value="">Tillfälle</option>
                                @foreach($post->bookingTimes as $bookingTime)
                                    <option value="{{ $bookingTime->id }}">{{ $bookingTime->bookingDateTime }}</option>
                                @endforeach
                            </select>
                        </div>
                    </div>  
                    <div class="row">
                        <div class="col s12 m6 l1 offset-l5 pb-1">
                        <label>
                            <input type="checkbox" />
                            <span>Boka för Företag</span>
                        </label>
                        </div>
                    </div>   
                    <div class="row">
                        <h5 class="studiecentralen-pink-title-NU">Fyll i deltagarens uppgifter</h5>
                    </div>      
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Namn" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="name" name="name" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div> 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Gatuadress" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="address" name="address" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div>  
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  C/O" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="careoff" name="careoff" type="text" class="search-term main-search studiecentralen-bg"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Postnummer" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="zip" name="zip" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div> 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Ort" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="city" name="city" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div>   
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Epost" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="email" name="email" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div> 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Telefonnummer" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="phone" name="phone" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div>               
                    <div class="extraParticipants"></div>
                    <div class="row center">
                        <div class="col s12 m6 l2 offset-l5">
                            <p id="noMore" style="display:none;">Vill du lägga in fler deltagare kan du göra en till bokning eller skriva i meddelandefältet.</p>
                            <button id="addParticipant" type="button" style="border-radius: 50px;height:30px;padding: 1px 10px;display: inline-flex;align-items: center;" class="modal-action btn buttonShadow center">Lägg till en deltagare</button>
                        </div>                        
                    </div>                 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <textarea id="inquiry" name="inquiry" class="studiecentralen-textarea studiecentralen-bg materialize-textarea validate" placeholder="   Har du något att tillägga?"></textarea>
                        </div>
                    </div>  
                    <div class="row">
                        <div class="col s12 m6 l2 offset-l5 pb-1">
                        <label>
                            <input type="checkbox" required/>
                            <span>Jag samtycker till att studiecentralen sparar min information och förmedlar informationen till arrangör av bokad utbildning</span>
                        </label>
                        </div>
                    </div>
                    <div class="row center"> 
                    <button type="submit" style="border-radius: 50px;height:30px;padding: 1px 10px;display: inline-flex;align-items: center;" class="modal-action btn buttonShadow center">Skicka</button>
                </div>         
                </div> 
            </div>           
        </form>

Trying to implement jquery validation because I need to be able to validate hidden inputs.

I initialize the plugin in document ready but on submit, I receive the following error:

Uncaught TypeError: Cannot read properties of undefined (reading 'type')
    at a.validator.elementValue (jquery.validate.min.js:4:10471)
    at a.validator.check (jquery.validate.min.js:4:11074)
    at a.validator.checkForm (jquery.validate.min.js:4:7116)
    at a.validator.form (jquery.validate.min.js:4:6816)
    at HTMLFormElement.<anonymous> (jquery.validate.min.js:4:1146)
    at HTMLFormElement.dispatch (vendors.min.js:1:391918)
    at HTMLFormElement.f.handle (vendors.min.js:1:389932)

I'm using Materializecss and laravel 8, if its relevant. The form is in a modal that is triggered on click but for the sake of testing, I'm always showing it right now. Here is the way I initialize the plugin:

    $(document).ready(function() {
        $("#bookingForm").validate();
    });

And here is the form:

         <form class="col s12 m12 l12" id="bookingForm" role="form">
            <div class="modal-content" id="modalContent">
                <h4>{{ $post->name }}</h4>
                <h6 class="" style="font-size: 14px;margin-top: 0px;">{{ $post->organizer->name }}</h6> 
                <div class="row center"> 
                    <div class="row center">
                        <div class="input-field col s12 m6 l2 offset-l4">
                            <select id="city_ids" name="city_ids" class="browser-default">
                                <option value="">Plats</option>
                                @foreach($post->cities as $city)
                                    <option value="{{ $city->id }}">{{ $city->name }}, {{ $city->county->name }}</option>
                                @endforeach                                
                            </select>
                        </div>             
                        <div class="input-field col s12 m6 l2">
                            <select id="time_ids" name="time_ids" class="browser-default">
                                <option value="">Tillfälle</option>
                                @foreach($post->bookingTimes as $bookingTime)
                                    <option value="{{ $bookingTime->id }}">{{ $bookingTime->bookingDateTime }}</option>
                                @endforeach
                            </select>
                        </div>
                    </div>  
                    <div class="row">
                        <div class="col s12 m6 l1 offset-l5 pb-1">
                        <label>
                            <input type="checkbox" />
                            <span>Boka för Företag</span>
                        </label>
                        </div>
                    </div>   
                    <div class="row">
                        <h5 class="studiecentralen-pink-title-NU">Fyll i deltagarens uppgifter</h5>
                    </div>      
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Namn" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="name" name="name" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div> 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Gatuadress" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="address" name="address" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div>  
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  C/O" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="careoff" name="careoff" type="text" class="search-term main-search studiecentralen-bg"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Postnummer" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="zip" name="zip" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div> 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Ort" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="city" name="city" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div>   
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Epost" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="email" name="email" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div> 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <input placeholder="  Telefonnummer" autocomplete="off" spellcheck="false" data-error=".errorTxt3" id="phone" name="phone" type="text" class="validate search-term main-search studiecentralen-bg" required/>
                        </div>
                    </div>               
                    <div class="extraParticipants"></div>
                    <div class="row center">
                        <div class="col s12 m6 l2 offset-l5">
                            <p id="noMore" style="display:none;">Vill du lägga in fler deltagare kan du göra en till bokning eller skriva i meddelandefältet.</p>
                            <button id="addParticipant" type="button" style="border-radius: 50px;height:30px;padding: 1px 10px;display: inline-flex;align-items: center;" class="modal-action btn buttonShadow center">Lägg till en deltagare</button>
                        </div>                        
                    </div>                 
                    <div class="row">
                        <div class="input-field col s12 m6 l2 offset-l5">
                            <textarea id="inquiry" name="inquiry" class="studiecentralen-textarea studiecentralen-bg materialize-textarea validate" placeholder="   Har du något att tillägga?"></textarea>
                        </div>
                    </div>  
                    <div class="row">
                        <div class="col s12 m6 l2 offset-l5 pb-1">
                        <label>
                            <input type="checkbox" required/>
                            <span>Jag samtycker till att studiecentralen sparar min information och förmedlar informationen till arrangör av bokad utbildning</span>
                        </label>
                        </div>
                    </div>
                    <div class="row center"> 
                    <button type="submit" style="border-radius: 50px;height:30px;padding: 1px 10px;display: inline-flex;align-items: center;" class="modal-action btn buttonShadow center">Skicka</button>
                </div>         
                </div> 
            </div>           
        </form>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

雨落□心尘 2025-02-06 19:56:42

好吧,问题是复选框没有名称属性。

Well the issue was that the checkboxes didn't have a name attribute..

神经大条 2025-02-06 19:56:42

这可能是因为您正在尝试在创建它之前获得#bookingform
将您的脚本标签移至HTML页面的底部,并且它将正常工作。

Its probably because you are trying get #bookingForm before its created.
move you script tag to bottom of your HTML page and its gonna work properly.

吾性傲以野 2025-02-06 19:56:42

也许对您来说很晚,但也许可以帮助他人。我遇到了相同的问题,并删除了解决该问题的“必需”属性。

Maybe it is late for you, but maybe it can help others. I encountered the same problem and removing the "required" attribute solved it.

单挑你×的.吻 2025-02-06 19:56:42

复选框没有名称。添加名称属性。它将验证

Checkbox don't have a name. Add name property. It will validate

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文