Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交带有原型的远程表单_Javascript_Ruby On Rails_Prototypejs - Fatal编程技术网

Javascript 提交带有原型的远程表单

Javascript 提交带有原型的远程表单,javascript,ruby-on-rails,prototypejs,Javascript,Ruby On Rails,Prototypejs,我有一个像这样的远程表单和一个复选框。当我选择或取消选择复选框时,我想 设置隐藏字段的值 ajax将此表单提交到其指定的url 我尝试了$('search_form').onsubmit(),但是我得到一个错误,说onsubmit不是一个函数。使用原型。最好的方法是什么 <form onsubmit="new Ajax.Request('/searches/search_set?stype=1', {asynchronous:true, evalScripts:true, paramete

我有一个像这样的远程表单和一个复选框。当我选择或取消选择复选框时,我想

  • 设置隐藏字段的值

  • ajax将此表单提交到其指定的url

  • 我尝试了$('search_form').onsubmit(),但是我得到一个错误,说onsubmit不是一个函数。使用原型。最好的方法是什么

    <form onsubmit="new Ajax.Request('/searches/search_set?stype=1', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;" method="post" id="new_search" class="new_search" action="/searches/search_set?stype=1">
      <div style="margin: 0pt; padding: 0pt; display: inline;">
        <input type="hidden" value="3TWSyMsZXI0nltz7zHAxuj1KX=" name="authenticity_token">
      </div>
    
      <a onclick="setSubmit(this);" href="#" class="submit-link-button fg-button ui-state-default fg-button-icon-left ui-corner-all" id="search_submit">
        <span class="ui-icon ui-icon-search"></span>'Search'
      </a>
      </div>   
    
      <input type="checkbox" value="Energy" onclick="refreshResults(this);" name="search[conditions][article_tag][0]" id="search_conditions_article_tag_0">
    

    也许您可以尝试以下方法:

    <form method="post" id="new_search" class="new_search" action="/searches/search_set?stype=1">
      <a href="#" class="submit-link-button fg-button ui-state-default fg-button-icon-left ui-corner-all" id="search_submit">
        <span class="ui-icon ui-icon-search">Search</span>
      </a>
      <input type="hidden" name="hidden_field_name" value="" id="hidden_field_id" />
      <input type="checkbox" value="Energy" name="search[conditions][article_tag][0]" id="search_conditions_article_tag_0" />
    </form>
    
    <script type="text/javascript">
      var Search = {
        send: function(event, element) {
          $('hidden_field_id').value = element.value;
          var form = element.up('form');
          new Ajax.Request('/searches/search_set?stype=1', {asynchronous:true, evalScripts:true, parameters:Form.serialize(form)}); return false;
          Event.stop(event);
        }
      };
      document.observe('dom:loaded', function(event) {
        $("search_conditions_article_tag_0").on("click", Search.send);
      });
    </script>
    
    
    变量搜索={
    发送:函数(事件、元素){
    $('hidden_field_id')。value=element.value;
    var form=element.up('form');
    新的Ajax.Request('/searches/search_set?stype=1',{asynchronous:true,evalscript:true,parameters:Form.serialize(Form)});返回false;
    事件。停止(事件);
    }
    };
    document.observe('dom:loaded',函数(事件){
    $(“搜索条件\文章\标签\ 0”)。在(“单击”,搜索。发送);
    });
    

    这就是您要查找的吗?

    。onsubmit()
    不是有效的jQuery函数。。。使用
    .submit()
    我使用的是prototype,而不是jquery,或者更确切地说,虽然我同时使用这两种语言,但对于这个特定的函数,它的原型jqery是用$j调用的,而不是$markupPrototype中似乎有一个零散的
    。submit()。我认为正确的方法是
    Event.observe()
    -不知道是否有任何速记。我忘了说你可以用它来捕捉提交事件:$$('ui-icon-search').first().observe(“提交”,函数(事件){//Event.target===>a.ui-icon-search});