Javascript 为所有表单元素设置属性

Javascript 为所有表单元素设置属性,javascript,jquery,forms,Javascript,Jquery,Forms,如何为保存在变量中的所有表单元素设置属性?我尝试过使用.attr(),如果我对每个输入字段使用一个.attr(),它就会起作用。我想选择表单,然后在同一个对象中添加所有属性 类似这样的东西(但这不起作用): 我应该怎么做才能做出上面这样的东西?您需要直接将这些对象应用到元素,而不是通过表单变量。试试这个: var $form = $("#myForm"), $name = $("#name"), $age = $("#age"); $name.attr({ type

如何为保存在变量中的所有表单元素设置属性?我尝试过使用.attr(),如果我对每个输入字段使用一个.attr(),它就会起作用。我想选择表单,然后在同一个对象中添加所有属性

类似这样的东西(但这不起作用):


我应该怎么做才能做出上面这样的东西?

您需要直接将这些对象应用到元素,而不是通过
表单
变量。试试这个:

var $form = $("#myForm"),
    $name = $("#name"),
    $age  = $("#age");

$name.attr({ 
    type: "text", 
    required: true, 
    placeholder: "Please enter your name.", 
    maxlength: 20
});

$age.attr({
    type: "number", 
    required: true, 
    placeholder: "Please enter your age.", 
    maxlength: 2
});

您需要直接将这些对象应用于元素,而不是通过
表单
变量。试试这个:

var $form = $("#myForm"),
    $name = $("#name"),
    $age  = $("#age");

$name.attr({ 
    type: "text", 
    required: true, 
    placeholder: "Please enter your name.", 
    maxlength: 20
});

$age.attr({
    type: "number", 
    required: true, 
    placeholder: "Please enter your age.", 
    maxlength: 2
});


你能解释一下你想要达到的目标吗,因为这是没有意义的。@Treps你应该提供你预期行为的具体例子,因为这实际上是没有意义的sense@Treps若它是同一个attributes对象,那个么可以使用:
$name.add($age.attr(obj))但由于它们不同,你的问题没有意义(据我所知),没有意义-同一个对象如何设置不同的属性?@Treps,而不是使用
对象
这个词来处理所有事情,最好使用具体示例来描述您发布的示例代码,因为您真的很困惑……您能解释一下您试图实现的目标吗,因为这没有意义。@Treps您应该提供具体示例来说明您的预期行为,因为这实际上没有意义sense@Treps如果是同一个属性对象,您可以使用:
$name.add($age).attr(obj)但由于它们不同,你的问题没有意义(据我所知),没有意义-同一个对象如何设置不同的属性?@Treps,而不是使用
对象
这个词来处理所有事情,最好使用具体的示例来描述您发布的示例代码,因为您真的很困惑……不会设置属性。也就是说,问题是完全不清楚的,因为我并没有设置属性。也就是说,imhoFYI完全不清楚这个问题,不确定它在这里是否相关(但听起来像),ID在文档上下文中必须是唯一的,所以
$(“#name”)
只会返回1个或没有匹配的元素,我永远不知道
#name
是脚本中唯一名为“name”的ID。年龄也一样。很抱歉,我还是不明白你的问题是什么。如果你自己提供了一个有问题的最低限度的样本,那么理解它就会容易得多。对不起,我想我不能用更好的方式来解释它。也许那是不可能的P阅读@Rory McCrossan的答案,我已经试着在那里解释了。仅供参考,不确定它在这里是否相关(但听起来像),ID在文档上下文中必须是唯一的,所以
$(“#name”)
只会返回1个或没有匹配的元素,我永远不知道
#name
是脚本中唯一名为“name”的ID。年龄也一样。很抱歉,我还是不明白你的问题是什么。如果你自己提供了一个有问题的最低限度的样本,那么理解它就会容易得多。对不起,我想我不能用更好的方式来解释它。也许那是不可能的P阅读@Rory McCrossan的回答,我已经试着解释了。
var arrtibuteData = { 
  name: { 
    type: "text", 
    required: true, 
    placeholder: "Please enter your name.", 
    maxlength: 20, 
  },
  age: {
    type: "number", 
    required: true, 
    placeholder: "Please enter your age.", 
    maxlength: 2, 
  }
};  
form.data('you attribute name', arrtibuteData);
name.attr ( {
    type: "text", 
    required: true, 
    placeholder: "Please enter your name.", 
    maxlength: 20
} );

age.attr ( {
    type: "number", 
    required: true, 
    placeholder: "Please enter your age.", 
    maxlength: 2
} );