Javascript 如果所选值在没有按钮的情况下更改,则提交wordpress表单
我正在尝试提交一个没有提交按钮的表单。 此表单从wordpress中的自定义字段中获取值,并在另一个页面中显示结果。我一直在尝试使用通常的javascript函数onchange,但什么都没有发生,我也尝试过使用函数……有人知道这有什么问题吗,或者是否有更好的方法来解决它?这可能与Wordpress或post方法有关吗?这是表单的代码:Javascript 如果所选值在没有按钮的情况下更改,则提交wordpress表单,javascript,wordpress,forms,submit,onchange,Javascript,Wordpress,Forms,Submit,Onchange,我正在尝试提交一个没有提交按钮的表单。 此表单从wordpress中的自定义字段中获取值,并在另一个页面中显示结果。我一直在尝试使用通常的javascript函数onchange,但什么都没有发生,我也尝试过使用函数……有人知道这有什么问题吗,或者是否有更好的方法来解决它?这可能与Wordpress或post方法有关吗?这是表单的代码: <form method="get" name="form" action="/busqueda/" > <div class
<form method="get" name="form" action="/busqueda/" >
<div class="search">
<select class="styled" name="author" onChange="this.form.submit();">
<option value="-1" selected>Authors</option>
<?php
$metakey = 'author';
$autores = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($authors) {
foreach ($authors as $author) {
echo "<option VALUE=\"" . $author . "\">" . $author . "</option>";
}
}
?>
</select>
</div><!-- #search1 -->
</form>
作者
顺便说一句,当使用标准提交按钮显示结果时,表单工作正常。
任何可能出错的暗示都是受欢迎的。非常感谢 试试这个:
<form method="get" name="form" action="/busqueda/" >
<div class="search">
<select class="styled" name="author" onChange="document.forms['form'].submit();">
<?php
$metakey = 'author';
$autores = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($authors) {
foreach ($authors as $author) {
echo "<option VALUE=\"" . $author . "\">" . $author . "</option>";
}
}
?>
</select>
</div><!-- #search1 -->
</form>
使用jQuery提交更新
更新后的表格:
<form id="authorForm" method="get" name="form" action="/busqueda/" >
<div class="search">
<select id="author" class="styled" name="author">
<option value="default">Choose an author...</option>
<?php
$metakey = 'author';
$autores = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($authors){
foreach ($authors as $author) {
echo '<option value="' . $author . '">' . $author . '</option>';
}
}
?>
</select>
</div><!-- #search1 -->
</form>
选择一个作者。。。
jQuery脚本更改事件处理和表单提交:
<script type="text/javascript">
$(document).ready(function(){
$('#author').change(function(){
if($(this).val() !== 'default'){
$('#authorForm').submit();
}
});
});
</script>
$(文档).ready(函数(){
$('#author')。更改(函数(){
if($(this.val()!='default'){
$('#authorForm')。提交();
}
});
});
您可以测试我希望您通过$\u GET正确地检索文章后的值,因为当我在浏览器中运行代码时,该值在URL中传递得非常好。检查检索代码,确保使用的是$\u GET而不是$\u POST。为什么要比较值?我只想让它进入搜索结果页面,但不需要按钮:)谢谢,@Shef。我也试过了,但仍然不起作用。我相信javascript是好的。是不是有什么东西在干扰这件事?我在同一个页面中有另一个表单,但没有,它没有任何名为“提交”的按钮,我认为这是一个常见错误。还有什么东西不能在任何浏览器中使用呢(或者有其他方法可以尝试吗?谢谢!嗯……请给我们一个在线页面,我们可以在那里查看它,然后从那里开始调试。当您更改作者与否时,表单是否会提交?例如,当您更改作者时,是否会将您带到
site.com/busqueda/?author=abcd
?@Shef,我不能给您一个在线页面。)他的是一个正在进行的工作的一部分,我无法显示它:(该表单使用提交按钮,将您带到site.com/busqueda。这是一个wordpress网站,因此我必须创建一个新页面,并链接一个名为“busqueda”的自定义模板页面,该页面处理结果并显示结果(如果有帮助,我可以发布该页面)。看起来好像没有看到javascript,因为我正在尝试onChange=“alert('alert'))更改作者时什么也没发生。看起来很糟糕。我可以试试jquery吗?我已经安装了这个库,它可以与页面中的一些其他元素配合使用。是的,我正在使用$\u GET来检索值,我尝试了$\u GET和$\u POST,并且都使用了提交按钮。我还尝试了提示一个警报,但似乎没有看到它任何javascript。这都快把我逼疯了。为了尝试,你可以把“javascript:this.form.submit();”放在那里。耶,也试过了。看起来这可能是javascript的Wordpress问题,警报也不起作用,这很奇怪。我可能会尝试使用jquery。。