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

Loop through elements in a form using Jquery

本文关键字:元素 表单 遍历 Jquery 循环 使用      更新时间:2023-09-26

如何循环遍历表单中的每个元素。如果元素发生任何更新,我想存储名称。我的代码对输入类型正确工作。但在选择字段的情况下,我并没有得到想要的输出。

<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>

您可以尝试:

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

这将选择所有输入、选择、文本区域等。

尝试在input/select标记上使用defaultValue属性。

$('#basic_profile').find(':input').each(function(){
    var defaultValue = $(this).prop('defaultValue);
});