如何重置AJAX结果输入字段

时间:2012-07-10 21:27:43

标签: javascript ajax callback reset

我有一个很长的形式,有多个步骤。用户需要能够点击重置,以防他们需要重新开始。

我已经实现了一个非常基本的JavaScript,如下所示:

<script type="text/javascript">
  function resetOnlyThese(){
  document.getElementById('room_str').selectedIndex = "";
  document.getElementById('qty_str').selectedIndex = "";
  // ...
  }
</script> 

<input type="button" value="Reset" onclick="resetOnlyThese()">

我正在使用AJAX来更新表单,并在SPAN中显示价格计算。

<span class="totalprice-placeholder"></span>

所有无线电,输入字段和下拉框都完美重置,但成功的AJAX回调生成的价格计算保持不变。有没有办法重置回调部分?

谢谢。

2 个答案:

答案 0 :(得分:0)

您必须为计算字段提供清理功能。

<script type="text/javascript">
  function resetOnlyThese(){
    document.getElementById('room_str').selectedIndex = "";
    document.getElementById('qty_str').selectedIndex = "";
    // ...
    // add some clean up code to clear the span elements
    document.getElementById('totalprice-placeholder').innerHtml = "";
  }
</script> 

<!-- when referencing a specific html element it's better to use "id"
     instead of "class"
 -->
<span id="totalprice-placeholder"></span>

答案 1 :(得分:0)

我发现这个脚本遍历所有元素并且非常简单地重置它们。

<script type="text/javascript">
function clear_form_elements(ele) {
    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });

}