如何在文本框内容发生变化时执行操作?

时间:2017-03-21 04:08:57

标签: javascript php html

我有两个动作,如:

功能getNews:获取列表新闻。

功能searchNews:根据关键字获取列表新闻。

我创建了一个表单来提交:



<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<form id="getNew" action="<?php echo admin_url('Xpathnews/searchKeyword') ?>" method="post">
  <div class="col-md-12 col-sm-12 col-xs-12">
    <h4><b>Select your news</b></h4>
    <select id="selectcate" name="selectcate" class="field-custom">
      <option  value="http://theverge.com">The Verge</option>
      <option  value="http://neowin.net">Neowin</option>
    </select>
  </div>

  <div class="col-md-12 col-sm-12 col-xs-12">
    <h4><b>Keyword:</b></h4>
    <input name="search_keyword" id="search_keyword" autocomplete="off" placeholder="Enter your keyword..." />
  </div>
  <div class="col-md-12 col-sm-12 col-xs-12">
    <input name="xpath_title" id="xpath_title" type="hidden" />
  </div>
  <br>
  <div class="col-md-12 col-sm-12 col-xs-12 text-center">
    <input  name="get_news" type="submit" id="get_news" value="Get News"/>
  </div>
</form>
&#13;
&#13;
&#13;

或小提琴链接:https://jsfiddle.net/f7zy0694/2/

我希望用户在文本框search_keyword中键入任何文字。将执行操作searchNews

通常,用户只需点击按钮Get News默认执行操作getNews

我在我的控制器/操作中尝试了一个解决方案:

public function getNews(){
        $xpath_title = $this->input->post('xpath_title');
}

public function searchNews() {
    $keyword = $this->input->post('search_keyword');
    if(empty($keyword)) {
      $this->getNews();
    } else {
        // execute my code at here
    }
}

...检查$keyword是否有价值它会执行函数$this->getNews,但问题是:

我隐藏了一些<input>,似乎调用了函数getNews它无效。

我也试过了seft:redirect("/getNews")

感谢。

1 个答案:

答案 0 :(得分:4)

您可以将Jquery ajaxkeyUpkeyDown一起使用:

$(document).ready(function(){
    $('#searchbox_id').keyUp(function(){
        // get the user entered string
        var searchTxt = $(this).val();
        $.ajax({
            url: 'process_file.php',                        
            type: 'get',                                  
            data: {
                searchTxt  :searchTxt
            },
            success: function(response){
                // do your stuff here
            }
        });
    });
});