使用Jquery循环遍历表单中的元素

时间:2013-11-22 07:28:23

标签: javascript jquery loops attributes

如何遍历表单中的每个元素。如果元素发生任何更新,我想存储名称。我的代码适用于输入类型。但是我没有得到选择字段所需的输出。

<html>
<form method="post" action="" id="basic_profile" class="basic_profile">
    <fieldset class="lang_content" dir="ltr" id="fieldset-en">
        <legend>English</legend>
        <dl>
            <dd>
                <select id="cardtype" name="cardtype">
                    <option value="debit-0.00-50.00">Debit1</option>
                    <option selected='selected' value="debit-0.00-50.00">Debit2</option>
                    <option value="debit-0.00-50.00">Debit3</option>
                    <option value="Credit-1.00-50.00">CreditCard</option>
                </select>
            </dd> 
            <dt id="business_name_en-label"><label class="optional" for="business_name_en">Profile Name / Business Entity Name</label></dt>

            <dd id="business_name_en-element">
                <input type="text" value="New Tesr" id="business_name_en" name="business_name_en">
            </dd> <dt id="description_en-label"><label class="optional" for="description_en">Description</label></dt>

            <dd id="description_en-element">
                <textarea cols="50" rows="4" id="description_en" name="description_en">new test description</textarea>
            </dd> <dt id="contact_person_en-label"><label class="optional" for="contact_person_en">Contact Name</label></dt>

            <dd id="contact_person_en-element">
                <input type="text" value="New test" id="contact_person_en" name="contact_person_en">
            </dd> <dt id="street_en-label"><label class="optional" for="street_en">Street</label></dt>

            <dd id="street_en-element">
                <input type="text" value="" id="street_en" name="street_en">
            </dd> <dt id="area_en-label"><label class="optional" for="area_en">Area</label></dt>

            <dd id="area_en-element">
                <input type="text" value="" id="area_en" name="area_en">
            </dd>
        </dl>
    </fieldset>
    <input type="submit" value="Save" id="save" name="save">
</form>

</html>

我的jquery是:

<script type="text/javascript">
$("#save").click(function() {
    var info = '';
    $("#basic_profile dl dd ").each(function() {
        if (this.defaultValue !== this.value)
            if (info === '')
                info += this.name;
            else
                info += ',' + this.name;
    });

    alert(info);
    $('#form_info').val(info);
    return false;

 });
</script>

2 个答案:

答案 0 :(得分:6)

你可以尝试:

$('#basic_profile').find(':input').each(function(){

});

这将选择所有输入,选择,textarea等。

答案 1 :(得分:1)

尝试在输入/选择标记上使用defaultValue属性。

$('#basic_profile').find(':input').each(function(){

    var defaultValue = $(this).prop('defaultValue);
});