试图改变我的提交输入表单提交值

Trying to change value of my submit input on form submit

本文关键字:输入 表单提交 提交 我的 改变      更新时间:2023-09-26

我在我的页面上有一个帖子列表,我也有一个搜索帖子的表单。

这是我的表单:

<form  action="" method="post">
  <input type="text" name="search"   onclick="if(this.value=='Search:')this.value=''" onblur="if(this.value=='')this.value='Search:'" value="Search:" />
  <input type="submit" value="Search" class="search"  name="sendForm" />
</form>

然后,当我的表单与一些值一起提交时,我存储一个会话与我的sql条件语句,我只得到我的新闻列表,标题像我在输入中写的值。

然后,如果我提交没有任何值的表单,我将取消会话设置,并再次获得所有新闻的列表。

这是我的php:
if(isset($_POST['sendForm'])){
    $search = $_POST['search'];
    if(!empty($search) && $search != 'Search:'){
    $_SESSION['where'] = "WHERE title LIKE '%$search%'";
    }
    else{
        unset($_SESSION['where']);
        header('Location: dashboard.php?exe=posts/index');
    }
 }

现在我需要在提交表单时更改输入sumbit的值

一开始,我的提交值是"Search",当我点击它时,我想把这个值改为"Clear"。当我点击"清除"时,我想再次切换到"搜索"。

你知道我怎样才能正确地做这件事吗?

一开始我试过这样做,但效果不好:

<input type="submit" value="Search"  onclick="if(this.value=='Search:')this.value='Clear"  name="sendForm" />

现在我尝试使用工具,但也不能正常工作。

$(".search").toggle(function (){
           $(this).val("Search");
        }, function(){
        $(this).val("Clear");
});

Demo

  1. toggle() - click已弃用- 参考,当前toggle()由jQuery隐藏元素

  2. 如果需要,使用preventDefault()防止表单提交

检查此代码,

var clear = true;
$('.search').click(function(e){
    e.preventDefault();          //if required
    if(clear){
        $(this).val('Clear');
        clear = false;
    }
    else{
        clear = true;
        $(this).val('Search'); 
    }
});

如果你的表单是在一个php文件中,你可以设置一个php变量(例如,$submitValue="Search"),然后将该值插入到你的表单代码中:

<input type="submit" value="<?= $submitValue ?>" class="search"  name="sendForm" />

你想修改提交按钮的值,对吗?