Javascript 如何重置AJAX结果输入字段

Javascript 如何重置AJAX结果输入字段,javascript,ajax,callback,reset,Javascript,Ajax,Callback,Reset,我有一个包含多个步骤的非常长的表单。用户需要能够单击重置,以防需要重新开始 我已经实现了一个非常基本的javascript,如下所示: <script type="text/javascript"> function resetOnlyThese(){ document.getElementById('room_str').selectedIndex = ""; document.getElementById('qty_str').selectedIndex = "";

我有一个包含多个步骤的非常长的表单。用户需要能够单击重置,以防需要重新开始

我已经实现了一个非常基本的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 class="totalprice-placeholder"></span>
所有的收音机、输入字段和下拉框都会完全重置,但是成功的AJAX回调生成的价格计算保持不变。有没有办法重置回调部分


谢谢。

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

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

我发现这个脚本可以循环所有元素,并非常简单地重置它们

<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;
        }
    });

}

虽然有道理,但似乎不起作用。是因为span没有ID吗?有没有办法执行getElementByClass或者我只是分配一个ID?对不起!你是对的:我看了课,但读了id。。。如果可以的话,建议在这样的上下文中将class更改为id,因为这样会产生更好的性能。我将修改我的建议以反映它。这很奇怪。我所做的一切都不起作用。我从班级改为id。。。我要去上课。检查拼写。Ajax在用户与下拉菜单交互时更新这个类,下拉菜单改变了总价格。然后,如果单击“重置”,所有字段都会像它应该的那样变为空白,但这个总框仍然保持不变。清理span元素的内容与AJAX没有直接关系——它只是关于DOM操作和javascript——但在清理完这些元素后,可能会有一些竞争条件填充这些元素。你能在这里或[]上发布更多信息吗?