使用jQuery自动生成表单并获取值

时间:2012-02-23 15:28:50

标签: javascript jquery html forms

我使用PHP表单自动生成,例如:

<form id="stack">
    <input type="text" name="aaa" pos="one"> <br />
    <input type="text" name="bbb" pos="one"> <br />
    <input type="text" name="aa3456" pos="two"> <br />
    <input type="radio" name="group2" pos="one" value="Water"> Water
    <input type="radio" name="group2" pos="one" value="Beer"> Beer<br>
    <input type="radio" name="gvv" pos="two" value="Water2"> Water
    <input type="radio" name="gvv" pos="two" value="Beer2"> Beer<br>
    <INPUT NAME="options" pos="one" TYPE="CHECKBOX" VALUE="o1">
      Option 1<BR>
    <INPUT NAME="options" pos="one" TYPE="CHECKBOX" VALUE="o2">
      Option 2<BR>
    <INPUT NAME="options"  pos="one" TYPE="CHECKBOX" VALUE="o3">
      Option 3<BR>
    <INPUT NAME="options2" pos="one" TYPE="CHECKBOX" VALUE="11">
      111<BR>
    <INPUT NAME="options2" pos="one" TYPE="CHECKBOX" VALUE="22">
      222<BR>
    <INPUT NAME="options2"  pos="one" TYPE="CHECKBOX" VALUE="33">
      333<BR>
    <input type="submit" id="submit">
</form>

我不知道如何输入以及如何命名。我只知道 - 他们属于pos =“one”。在形式上也可以是pos =“two”等。

如果属性pos =“one”,则它们必须不为空。

我该怎么检查?我的例子应该是:

输入名称为 aaa 的文字&amp; bbb 应该不为空

必须检查一个名为 group2 的输入广播 - 值为Water或value Beer。

应选中名称选项的最小一个输入复选框。

应选中名称 options2 的最小一个输入复选框。

如何使用jQuery获取pos =“one”的所有输入?也许功能每个和过滤?但是怎么样?

LIVE: http://jsfiddle.net/T8nNs/4/

编辑:如果某些输入为空/未选中​​,我希望收到警报('错误')。

2 个答案:

答案 0 :(得分:1)

您可以像这样获取pos属性,输入名称和输入值:

var pos = $('input').attr('pos');
var inputName = $('input').attr('name');
var inputVal = $('input').val();

从那里,您可以开始进行验证:

var pos = '';
var inputName = '';
var inputVal = '';
$('#stack').submit(function(){
  $('input').each(function(){
    var $this = $(this);
    pos = $this.attr('pos');
    inputName = $this.attr('name');
    inputVal = $this.val();
    if (pos === 'one') {
      if (val === null) {
        return false;
      } else {
        // positive answer
      }
    } // etc.
  });
});

答案 1 :(得分:0)

例如,查看attribute equals selector

$('input[pos="one"],input[name="gvv"]').change(function() {
    alert('changed');
})​

示例http://jsfiddle.net/T8nNs/9/

要对表单执行验证,您可以使用submit()