2012-06-22 21 views
1

我是jQuery的新手。我正在尝试一些事情,但我需要一些帮助。如何使用提交表单更改jquery参数?

我有以下脚本

jQuery(function($){ 
     $("#query").whatever({ 
      parameter1: 32, 
      parameter2: 4, 
      query: "something" 
     }); 
     }); 

我需要一个脚本通过提交表单改变query: "something"query: "something else"。可能吗?

PS:我改变$("#query").something$("#query").whatever,以不混淆参数query: "something"

Actualy使用jQuery代码http://tweet.seaofclouds.com/我想改变例2中的“查询”的参数,因为我之前告诉记者,通过提交表单。

+0

如果可能,请张贴您的密码。也请详细说明要求。它没有那么清楚,因为这个代码会在哪里出现?该表单是否在同一页面? – Subhajit

+0

您调用'.something()'并将它传递给包含参数或选项的对象的事实告诉我您正在使用插件或AJAX调用。不同的插件允许您以不同的方式更改选项。请给我们一个你正在使用的代码的真实例子;现在你的问题是模糊的给我们给你任何真正的帮助。 – RustyTheBoyRobot

回答

1

看看:http://api.jquery.com/jQuery.extend/

与形式:

<form> 
     <input name="newvalue" id="newvalue" type="text"/> 
     <input type="button" id="onclickUpdate" value="update" name="update"/> 
    </form> 
    <script> 
     var obj = { 
      parameter1 : 32, 
      parameter2 : 4, 
      query : "something" 
     }; 
     $(function() { 
      $('#onclickUpdate').click(function(e) { 
       e.preventDefault(); 
       console.log('old : ' + obj.query); 
       $.extend(obj, { 
        query : $('#newvalue').val() 
       }); 
       console.log('new : ' + obj.query); 
       $("#query").something(obj); 
      }); 
     }); 
    </script> 
+0

为什么使用'extend'?为什么不使用'obj.query = $(“#newvalue”).val()'? – RustyTheBoyRobot

+0

实际上,我使用来自[link](http://tweet.seaofclouds.com/)的jquery代码我想通过提交表单更改示例2中的“query”参数。 – user1474987

+0

顺便说一句,上面的脚本dosent似乎工作。默认参数剂量随新的变化而改变。 – user1474987

-1

呀,封闭选项的字典,并与预设值别的查询键,并通过选项字典作为要传递的参数。

+1

我一直在使用jQuery很长一段时间,但我很难得到你所说的......你希望一个“新手”了解这一点? – TecHunter

+0

嗯,字典的概念与jQuery无关,是不是,它带有香草Javascript,所以我认为JQuery中的任何“新手”都应该对来自良好的旧Javascript的东西感到满意。为什么这么难理解? – SexyBeast

+0

顺便说一句,你的解决方案做同样的事情,只有它使用jQuery函数** extend()**来做同样的事情。 – SexyBeast

0

好吧,假设你正在使用$阿贾克斯()提交表单。提交表单时,您可能会传递3到4个键以及它们的值作为数据,对不对?在这些密钥对值之一,你需要有一个默认值,因此,而不是从头开始构建一个散列,使用默认的一个开始,还要加上你要发送的其他的:

initdata = {query:"something-else"}; //not needed if you don't include the "query" key while populating tobesent 
tobesent = {}; //may be through serializing a form through serializeArray or something 
tobesent = $.extend(tobesent,initdata); 
$.ajax({ 
url : "foo.php", 
data: tobesent,success: function() {} 
}); 

这是你在找什么?