javascript - 表单提交不适用于 WordPress 管理中的下拉更改

标签 javascript php jquery wordpress admin

我正在努力在 WordPress 管理中的下拉列表更改后提交表单。我尝试将 javascript 添加到下拉列表中,例如 <select onchange="this.form.submit()"></select> ,这对我来说也不起作用。即使我尝试使用 JQuery 但没有成功。

functions.php

//**************function to add the javascript
function add_my_script() {
    wp_enqueue_script(
    'dropdown', scripts and de-register, etc.
    get_template_directory_uri() . '/js/dropdown.js', 
    array('jquery'),'20120206' 
    );
}
add_action( 'wp_enqueue_scripts', 'add_my_script' );

//**************function to create the form
function Reviews_settings_page()
{ 
?>
  <div class="wrap">        
    <form method="POST" name="review_edit" action="<?php echo $_SERVER['PHP_SELF'].'?page=Reviews-panel';?>">
       <?php
          settings_fields("section");
          do_settings_sections("Reviews-options");
          submit_button(); 
       ?>   
    </form>
  </div>
<?php
}

//*********function to create the dropdown
function display_Reviews_Brand_listing()
{
echo "<select name='dropdown' id='dropdown'>
    <option value=''>--select--</option>
    <option value='101'>EVEREST</option>
    <option value='102'>REVOLT</option>
    <option value='103'>HAWANA</option>
    <option value='104'>ELIZE</option>
</select>";
}

//**************adding functionality to wordpress admin
function display_Reviews_panel_fields()
{
add_settings_section("section", "Reviews", null, "Reviews-options");
add_settings_field("Reviews_url", "Select the Brand for Review", "display_Reviews_Brand_listing", "Reviews-options", "section");

register_setting("section", "Reviews_url");
}
add_action("admin_init", "display_Reviews_panel_fields");

dropdown.js

jQuery( document ).ready( function( $ ) {
    $('#dropdown').on('change', function() {
    var $form = $(this).closest('form');
    $form.find('input[type=submit]').click();
  });
} );

任何帮助将不胜感激。 感谢您为解决此问题花费的时间和精力。

最佳答案

我尝试克隆您的错误。将表单操作保留为空,而不是 $_SERVER['PHP_SELF']。您的 dropdown.js 已通过 add_action()

成功添加

对我来说,onchange='this.form.submit();'也不起作用。

我尝试了不同的代码片段来提交表单,最后下面的 JavaScript 对我有用

dropdown.js

function myFunction() {
        document.querySelectorAll("input[type=submit]")[0].click();
    }

functions.php

//update your form tag
<form method="POST" name="review_edit" id="review_edit" action="">

//update your <select>
<select name='dropdown' id='dropdown' onchange='myFunction();'>

希望这对您有帮助。

关于javascript - 表单提交不适用于 WordPress 管理中的下拉更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40908685/

相关文章:

javascript - 在 ES6 中将数组解构为函数参数的语法

javascript - 我可以在 php 中使用以 .html 编码的条件警报吗

php - Ajax 返回 null

phpseclib exec() 返回未格式化的文本?

jquery - Bootstrap Table 的自定义滚动条

javascript - AJAX 表单部分有效

javascript - 没有 'let' 或 'var' 的 ES6 类中 undefined variable

javascript - 与输入值相关的对象的警报值属性

javascript - Accordion 中的下拉菜单,想要在不更改 Accordion 面板的情况下进行选择

javascript - jQuery UI 对话框 : Close when Click Outside