当我尝试在表单上调用validate()
函数时,我收到了名义错误。我所做的所有研究都说“请确保你正在调用它”但是我95%确定我这是我的电话:
<script type="text/javascript" src="http://test.elitetradersgroup.com.au/wp-content/plugins/a-test/jquery.validate.min.js?ver=3.3.2"></script>
<script type="text/javascript" src="http://test.elitetradersgroup.com.au/wp-content/plugins/a-test/additional-methods.min.js?ver=3.3.2"></script>
当我在Chromes开发工具中点击它们时,他们想出了插件文件,让我相信它们已被包含在内。它们是在jQuery之后调用的,所以我非常怀疑它是什么。
表格如下:
<form action="http://test.elitetradersgroup.com.au/broker-tools/amazon-upload/" method="post" class="upload" enctype="multipart/form-data">
<label class="title hide" for="theTitle">Email Title</label>
<input id="theTitle" class="hide" type="text" name="theTitle"><div id="amazon_title_char_count" class="hide"></div><div id="excess_warning" style="display:none; font-weight: bold;color: red;"></div>
<label class="title hide" for="theSite">Select Email From</label>
<div class="option hide"><span class="sec_name">Elite Traders Group</span><div class="opt-cont"><input class="radio broadcast" type="radio" id="sec_2" name="theSite" value="s_2"><label class="radio" for="sec_2">Broadcast</label></div></div><div class="option hide"><span class="sec_name">Elite Futures Mastery</span><div class="opt-cont"><input class="radio broadcast" type="radio" id="sec_6" name="theSite" value="s_6"><label class="radio" for="sec_6">Broadcast</label></div><div class="opt-cont"><input class="radio daily-forex-room" type="radio" id="sec_10" name="theSite" value="s_10"><label class="radio" for="sec_10">Daily Forex Room</label></div><div class="opt-cont"><input class="radio day-ahead" type="radio" id="sec_3" name="theSite" value="s_3"><label class="radio" for="sec_3">Day Ahead</label></div><div class="opt-cont"><input class="radio the-daily-beef" type="radio" id="sec_9" name="theSite" value="s_9"><label class="radio" for="sec_9">The Daily Beef</label></div><div class="opt-cont"><input class="radio trade-progress" type="radio" id="sec_5" name="theSite" value="s_5"><label class="radio" for="sec_5">Trade Progress</label></div><div class="opt-cont"><input class="radio trade-recommendation" type="radio" id="sec_11" name="theSite" value="s_11"><label class="radio" for="sec_11">Trade Recommendation</label></div><div class="opt-cont"><input class="radio week-ahead" type="radio" id="sec_4" name="theSite" value="s_4"><label class="radio" for="sec_4">Week Ahead</label></div></div><div class="option hide"><span class="sec_name">Daily Wealth Report</span><div class="opt-cont"><input class="radio technical-toolbox" type="radio" id="sec_1" name="theSite" value="s_1"><label class="radio" for="sec_1">Technical Toolbox</label></div></div><div class="option hide"><span class="sec_name">Elite Options Mastery</span><div class="opt-cont"><input class="radio broadcast" type="radio" id="sec_7" name="theSite" value="s_7"><label class="radio" for="sec_7">Broadcast</label></div></div><div class="option hide"><span class="sec_name">Options Made Easy</span><div class="opt-cont"><input class="radio broadcast" type="radio" id="sec_8" name="theSite" value="s_8"><label class="radio" for="sec_8">Broadcast</label></div></div>
<label class="title hide">Files to include</label>
<div id="container">
<div id="filelist"></div>
<div id="queue-time"></div>
<br>
<a id="pickfiles" class="hide" href="#">[Select files]</a>
</div>
<label class="title hide">Extras</label>
<input type="checkbox" class="hide" id="positons" name="positions" value="positions-box"><label class="hide" for="positons">Include Positions</label>
<input type="checkbox" class="hide" id="message" name="message" value="message-box"><label class="hide" for="message">Include message</label>
<input type="checkbox" class="hide" id="additional-webinar" name="additional-webinar" value="additional-webinar-box"><label class="hide" for="additional-webinar">Include Additional Webinar</label>
<div class="hide" id="positions-box" style="display:none;">
<label class="title">Positions Info</label>
<label>New/Potential Trades</label>
<input type="text" name="np-trades">
<label>Current Trades</label>
<input type="text" name="cur-trades">
<label>Updates</label>
<input type="text" name="update-trades">
</div>
<div class="hide" id="message-box" style="display:none;">
<label class="title">Email Message</label>
<textarea id="message-ta" name="message" cols="50" rows="10"></textarea>
<div id="message_char_count"></div>
<div id="message_excess_warning" style="display:none; font-weight: bold;color: red;"></div>
</div>
<div class="hide" id="additional-webinar-box" style="display:none;">
<label class="title">Select Additional Webinar</label>
<select name="additional-webinar-selection">
<option value="0" selected="">Please Select</option>
<option value="173">Del All test(Elite Options Mastery)</option><option value="171">Glob Test(Elite Futures Mastery)</option><option value="169">Test 2(Elite Futures Mastery)</option><option value="167">Test(Elite Futures Mastery)</option><option value="164">Test(Elite Futures Mastery)</option><option value="162">New Min TEst(Elite Futures Mastery)</option><option value="160">Min Height Test(Elite Options Mastery)</option><option value="158">Title Yo(Elite Options Mastery)</option><option value="156">Title(Options Made Easy)</option><option value="96">TT Test(Daily Wealth Report)</option> </select>
</div>
<input type="hidden" value="elitetradersgroup" name="amazon_bucket">
<button class="hide" id="validate" type="button" onclick="broker_validate()">Validate</button>
<button class="hide" id="juploader" type="button" style="display:none">Upload</button>
<input type="hidden" name="uid" value="p16ubcu16t1gus18ls12g79ls1"></form>
这样的电话:
<script type="text/javascript">
function broker_validate() {
jQuery("form").validate({ //line where the error pops up in console
rules: {
theTitle: {
required: true
},
messages: {
theTitle: {
required: "The email needs a title"
}
}
}
})
if (jQuery("form").valid()) {
jQuery("#validate").hide();
jQuery("#juploader").show();
}
};
</script>
这件事让我难过,我确信这是一个愚蠢的小语法或优先级错误。任何有新鲜眼睛的人都可以发现吗?
仅供参考,该网站正在运行wordpress,因为您可以通过从插件文件中提取jQuery来判断。
在回复评论时,Chrome控制台的输出为console.log(jQuery("form"));
:
E.fn.E.init
0: HTMLFormElement
length: 1
prevObject: E.fn.E.init
__proto__: Object
答案 0 :(得分:1)
事实证明它必须是一个wordpress'quirk'。我从另一个插件调用js并使用wp_equeue_script()
wp_equeue_script()
添加?ver=3.3.2
到最后,因为它不是ver 3.3.2
它没有加载depsite chrome把它显示为所谓的。
答案 1 :(得分:0)
这部分
jQuery("form").validate({ });
需要在
$(document).ready(function(){}); // or jQuery(document).ready(function(){});
所以它显示如下。
// '$' indicates 'jQuery'
$(document).ready(function(){
jQuery("form").validate({ //your options. });
});