文本框未重置

时间:2018-04-18 07:01:18

标签: javascript jquery html html-form

我有一个文本框,我尝试在点击按钮后重置它。但它没有被重置。 HTML脚本: -

    <input type="text" name="" class="input-default" id="inp">
    <button type="submit" class="btn btn-success btn-sm m-b-10 m-l-5" onclick="add()">Add</button>
<select id='pre-selected-options' multiple='multiple'>
    <option value='elem_1' selected>1</option>
    <option value='elem_2'>a</option>
    <option value='elem_3'>x</option>
    <option value='elem_4' selected>Ce</option>
    <option value='elem_100'>Td</option>
  </select>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
 <script src="js/jquery.multi-select.js"></script>

JavaScript代码: -

var x;
var option;
var y;

function add() {
    var x = document.getElementById('pre-selected-options');
    console.log(x);
    var option = document.createElement("option");
    option.text = document.getElementById("inp").value;
    var y = option.text
    x.add(option);
    $('#pre-selected-options').multiSelect('addOption', {
        value: y,
        text: y,
        index: 0,
        nested: 'optgroup_label'
    });
    document.getElementById('pre-selected-options').reset();
}

$('#pre-selected-options').multiSelect();

我尝试添加此内容并且不重置表单:

document.getElementById('pre-selected-options').reset();

4 个答案:

答案 0 :(得分:4)

要重置表单,请使用

form.reset();

var form = document.querySelector('form');
var button = document.querySelector('button');

button.addEventListener('click', function() {
  form.reset();
})
<form>
  <input value="volvo">

  <select>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </select>

  <button type="button">Reset form</button>
</form>

重置例如input,请使用

input.value = '';

var input = document.querySelector('input');
var button = document.querySelector('button');

button.addEventListener('click', function() {
  input.value = '';
})
<input value="volvo">


<button>Reset to none</button>

重置例如select,请使用

select.selectedIndex = 0;    // select first option
select.selectedIndex = -1;   // select none

var select = document.querySelector('select');
var button = document.querySelector('button');

button.addEventListener('click', function() {
  select.selectedIndex = -1;   // select none
})
<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>


<button>Reset Select to none</button>

答案 1 :(得分:4)

您遇到的问题是,在调用inp时,您尝试清除标识为pre-selected-options的输入框,而document.getElementById('inp').value = ""未连接到您的文本框。

使用.outer { background: yellow; } .inner { background: lime; margin: 2em 0; }应该清除文本框的值。

答案 2 :(得分:0)

要清除输入框使用的值:

  document.getElementById('pre-selected-options').value = "";

https://www.w3schools.com/howto/howto_html_clear_input.asp

答案 3 :(得分:0)

使用jQuery重置表单。

$("form")[0].reset();
相关问题