2010-07-13 53 views

回答

3

我认为代码给你一个不好的味道的原因是因为写json作为字符串是相当臭的。一个小小的改进就是创建一个真正的JSON对象,然后使用JSON.stringify(...)函数。

与JSON对象创建一个变量,这给你的语法在设计时检查和运行时间

var customerInput = {"customerToAssignTo":$("#customerToAssignTo").val()}; 
var serializedCustomerInput = JSON.stringify(customerInput); 

,那么你可以更换线

data: "{'customerToAssignTo':'" + $("#customerToAssignTo").val() + "'}" 

data: serializedCustomerInput 

您需要包含https://github.com/douglascrockford/JSON-js/blob/master/json2.js

更多信息:

http://www.json.org/js.html

http://msdn.microsoft.com/en-us/library/cc836459(VS.85).aspx - 这是在Windows脚本的上下文,但是给出了函数的一个很好的说明

1

正如我发布这个,我发现了一种方法,但我真的不喜欢它。 这非常麻烦,需要构建自己的Json,这似乎不是一个好的解决方案。

var validated = $("#aspnetForm").validate(
    { 
     rules: 
     { 
      customersToReassign: 
      { 
       required: true 
      }, 
      customerToAssignTo: 
      { 
       required: true, 
       remote: 
       { 
        url: window.location + "/IsValidCustomer", 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        data: "{'customerToAssignTo':'" + $("#customerToAssignTo").val() + "'}" 
       } 
      } 
     },