我正在尝试使用下面的函数生成2个脚本(一个内部脚本,一个外部脚本)。内部的一个(\'custom\\u script\')正在工作,但第二个(\'formValidation\')没有工作(我得到一个“validate()不是函数”错误)。验证是指向脚本的外部链接。
我做错了吗?如果是这样,正确的方法是什么?
function smartdeploy_scripts() {
// register your script location, dependencies and version
wp_register_script(\'custom_script\', get_template_directory_uri() . \'/CustomJs/SmartDeployCustom.js\', array(\'jquery\'), \'1.0\' );
wp_register_script(\'formValidation\', \'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js\', array(\'jquery\'), \'1.9\');
// enqueue the script
wp_enqueue_script(\'custom_script\');
wp_enqueue_script(\'formValidation\');
}
add_action(\'wp_enqueue_scripts\', \'smartdeploy_scripts\');
编辑:我也尝试过在插件文件中直接使用qneue,就像这样。第一个队列正在工作(“sdForms”),但上的验证仍不工作。
//Enqueue our js file
function sd_form_scripts() {
wp_register_script( \'sdForms\', plugin_dir_url( __FILE__ ) . \'js/sdForms.js\' );
wp_enqueue_script( \'sdForms\' );
//wp_register_script( \'validate\', plugin_dir_url( __FILE__ ) . \'js/jquery.validate.js\', array(\'jquery\') );
//wp_enqueue_script( \'validate\' );
}
add_action( \'wp_enqueue_scripts\', \'sd_form_scripts\' );
//Enqueue Validation plugin
function sd_validation_script() {
wp_register_script(\'formValidation\', \'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js\', array(\'jquery\'));
wp_enqueue_script(\'formValidation\');
}
add_action(\'wp_enqueue_scripts\', \'sd_validation_script\');
最合适的回答,由SO网友:Aftab 整理而成
这种情况可能是在将此脚本排队之前使用JS验证。
您的代码可能如下。。
<html>
$("#myForm").validate(); or JS file that uses validate()
jquery.validate.js here
</html>
以上代码仅用于演示。
所以您正在使用validate()
函数,以便将其放入队列validate()
不是函数。
确保在jquery之后使用validate()函数。验证js已排队。
根据您所做的更新,更新了答案,这里您正在使用wp_enqueue_scripts 两次,不需要。
到目前为止,我所了解的是你的sdForms。js包含validate()方法,但仍在加载jquery。验证sdForms后的js。js。因此,更新后的代码将是:
//Enqueue Validation plugin
function sd_validation_script() {
wp_enqueue_script( \'jqeury\' ); // add jqeury
wp_register_script(\'formValidation\', \'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js\', array(\'jquery\'));
wp_enqueue_script(\'formValidation\'); // add formValidation plugin
wp_register_script( \'sdForms\', plugin_dir_url( __FILE__ ) . \'js/sdForms.js\' );
wp_enqueue_script( \'sdForms\' ); // add sdForms after formValidation
}
add_action(\'wp_enqueue_scripts\', \'sd_validation_script\');