我创建了一个小的自定义插件,它只是一个HTML表单。HTML表单为echo
\'它包含一个小的JavaScript函数,我想在提交时运行它。然而,我无法让它发挥作用,我也不确定我做错了什么。是否不允许以这种方式使用JavaScript?如果没有,正确的方法是什么?
点击submit按钮时,运行下面的代码段不会执行任何操作。
echo "
<script type=\\"text/javascript\\">
function validateForm()
{
alert(\\"FOOO\\");
return false;
}
</script>
<h1>Header</h1><br>
<form method=\\"post\\" onsubmit=\\"validateForm()\\">
<input type=\\"submit\\" value=\\"Submit me\\" /><br>
</form>
";
Update:
下面是整个插件,只需进行一个小测试。JavaScript控制台只显示jQuery警告:
JQMIGRATE:jQuery。fn。live()已弃用。我不确定这是从哪里来的,但我不直接使用jQuery。当我激活插件并单击按钮时,页面上会重新加载按钮和所有内容,但消息是,它已发布
不显示。因此,似乎没有提出POST请求。删除脚本和
onsubmit
从PHP
echo
产生相同的行为。
<?php
/*
Plugin Name: Test Plugin
*/
// Create plugin menu.
add_action(\'admin_menu\', \'create_test_plugin_menu\');
function create_test_plugin_menu()
{
add_menu_page(\'The Test Plugin\', \'Test Plugin\', \'administrator\', __FILE__, \'setup_test_plugin\');
}
function setup_test_plugin()
{
$submit_name = \'test_button\';
if ( $_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST[$submit_name]) )
{
echo "Yes, it was posted!";
}
else
{
echo "
<script type=\\"text/javascript\\">
function validateForm()
{
alert(\\"FOOO\\");
return false;
}
</script>
<h1>Header</h1><br>
<form method=\\"post\\" onsubmit=\\"validateForm()\\">
<input type=\\"submit\\" name=\\"{$submit_name}\\" value=\\"Submit me\\" /><br>
</form>
";
}
}
?>
下面是从JavaScript控制台复制到HTML源的内容。
<script type="text/javascript">
function validateForm()
{
alert("FOOO");
return false;
}
</script>
<h1>Header</h1><br>
<form method="post" onsubmit="validateForm()">
<input type="submit" name="test_button" value="Submit me" /><br>
</form>
SO网友:dev
您好,您可以通过wp enqueue脚本在插件中包含javascript。关于表单,您可以创建一个短代码来显示它。让我给你举个例子:-
add_action(\'wp_enqueue_scripts\',\'ir_jscripts\');
function ir_jscripts()
{
wp_enqueue_script( \'frontend_script\', plugin_dir_url(__FILE__).\'/js/frontend_scripts.js\', array(\'jquery\'), \'3.3.5\', true );
}
之后,您可以声明一个短代码并在那里使用您的表单:-
add_shortcode(\'login-form\',\'login_form_callback\');
function login_form_callback()
{
$data = "your form here";
return $data;
}
之后,您可以使用快捷码[登录表单]将表单显示在任何位置。
在js文件js/frontend\\u脚本中。js在插件文件夹中,您可以编写js代码。
希望对你有帮助。
谢谢