在加载页面时检查文本框是否从默认值更改值

时间:2010-07-20 14:29:38

标签: javascript jquery

我在页面上有两个表单。

第一个有几个数量文本框,在页面加载时使用各自的默认值填充,这显然可以更改。此外,页面上可能还有1,2,3或更多这些文本框,因此脚本必须考虑到这一点。每个文本框的顺序名称为“Quantity1,Quantity2等”,id也是相同的。

我想要做的是检查这些是否已经从其默认值更改,并且当在第二个表单中单击任一按钮时,它是执行第一个表单的按钮而不是第二个表单的按钮操作。

现在,如果任何输入文本框中没有任何更改,则第二个表单的按钮可以而且应该正常运行。这是可能的,如果是这样的话,首选jquery方法?

注意:我在这里删除了很多不必要的代码,所以只显示相关内容。

<form method="POST" name="form" action="ShoppingCart.asp" onsubmit="if (typeof(Update_Hidden_State_Fields)=='function') Update_Hidden_State_Fields(); if (this.submitted) return false; else {this.submitted=true; return true;}">
<td><center><input type="text" maxlength="7" size="5" value="5" name="Quantity1" id="Quantity1"><center></td>
<td><center><input type="text" maxlength="7" size="5" value="2" name="Quantity2" id="Quantity2"><center></td> 
<td><center><input type="text" maxlength="7" size="5" value="5" name="Quantity3" id="Quantity3"><center></td>
<td width="135" align="right"><input border="0" type="image" id="btnRecalculate" name="btnRecalculate" src="v/vspfiles/templates/100/images/buttons/btn_recalculate.gif" alt="Recalculate Totals"></td>

以下是单击其中任一按钮并且上述表单中的任何输入框已更改为执行第一个表单按钮操作的表单。

<form name="Proceed_To_Checkout_Form" method="post" action="https://www.dothisurl.com/login.asp">
<td><input type="image" src="v/vspfiles/templates/100/images/buttons/btn_checkout_guest.gif" name="btn_checkout_guest"></td>
<td><input type="image" src="v/vspfiles/templates/100/images/buttons/btn_checkout_guest.gif" name="btn_checkout_guest"></td>

    

2 个答案:

答案 0 :(得分:2)

我会试一试:

$(function(){
  $("[id^='Quantity']").each(function(){
    $(this).data('default', $(this).val());
  });

  $("[name='Proceed_To_Checkout_Form']").submit(function(){
    var hasChanged = false;
    $("[id^='Quantity']").each(function(){
      if($(this).val() != $(this).data('default')){
        hasChanged = true;
      }
    });
    if(hasChanged){
      $("#btnRecalculate").click();
      return false;
    }
  });
});

答案 1 :(得分:1)

在页面加载时,你可以将字段的当前值(这些是我假设的默认值)存储到本地js变量中 - 很可能是一个数组,以处理可能有1,2的事实,或3个要存储的值。一旦存储了这些默认值,其余的应该相对容易:

在Form2上单击按钮时,其实现会将相关字段的当前值与其默认值(加载页面时存储的值)进行比较。如果它们是相同的,请进行正常处理。如果它们不同,请执行您需要的“例外情况”处理。

希望我能正确理解你的问题,这种方法可以让你走上正轨。如果你需要我把一些代码示例/片段放在一起,我会密切关注这个帖子。