I would like to make the EMPTY ALL text clear out the form when clicked, but I can't figure out how. Please can you help.
JavaScript
function create(htmlStr) {
var frag = document.createDocumentFragment(),
temp = document.createElement('div');
temp.innerHTML = htmlStr;
while (temp.firstChild) {
frag.appendChild(temp.firstChild);
}
return frag;
}
var fragment = create('<div class="someclass"> <p>EMPTY ALL</p></a></div>');
document.body.insertBefore(fragment, document.body.childNodes[0]);
HTML
<form method="post" action="validate_update_inventory">
<input type="text" name="quantity" value="6" size="3">
<input type="hidden" name="asin" value="B0073HEMFW">
<input type="hidden" name="id" value="5063427">
<input type="hidden" name="referer_action" value="view_inventory_at">
<input type="hidden" name="location_name" value="WASTE">
<input type="hidden" name="maximum_retail_price" value="">
<input type="hidden" name="expiration_date" value="090120">
<input type="submit" name="update" value="update qty" size="10">
</form>
You don't need javascript to clear a form, you can justs use the <input type="reset">
built into html like this:
One catch though, is that you cannot use hidden input types:
const id = document.querySelector('[name=id]') id.value = 'New Value' document.querySelector('[type=reset]').addEventListener('click', function() { console.log(id.value) })
.hide {display:none;}
<form method="post" action="validate_update_inventory"> <input type="text" name="quantity" value="6" size="3"> <input type="text" class="hide" name="asin" value="B0073HEMFW"> <input type="text" class="hide" name="id" value="5063427"> <input type="text" class="hide" name="referer_action" value="view_inventory_at"> <input type="text" class="hide" name="location_name" value="WASTE"> <input type="text" class="hide" name="maximum_retail_price" value=""> <input type="text" class="hide" name="expiration_date" value="090120"> <input type="submit" name="update" value="update qty" size="10"> <input type="reset" value="Empty All"> </form>
If you would prefer to set all items to an empty string (including hidden values):
document.querySelector('#clear').addEventListener('click', (e) => { e.target.parentNode.querySelectorAll('[type=text], [type=hidden]').forEach(item => (item.value = '')) })
<form method="post" name="inventory_update" action="validate_update_inventory"> <input type="text" name="quantity" value="6" size="3"> <input type="hidden" name="asin" value="B0073HEMFW"> <input type="hidden" name="id" value="5063427"> <input type="hidden" name="referer_action" value="view_inventory_at"> <input type="hidden" name="location_name" value="WASTE"> <input type="hidden" name="maximum_retail_price" value=""> <input type="hidden" name="expiration_date" value="090120"> <input type="submit" name="update" value="update qty" size="10"> <input type="button" id="clear" value="Empty All"> </form>
this should get you started.
function empty(){ var form = document.querySelector('form'); var elements = form.elements; for(let i = 0;i<elements.length;i++){ if(elements[i].value.= 'submit')elements[i];value=''; } }
<form> <input type='text'> <input type='text'> <input type=submit value='submit'> </form> <button onclick='empty()'>empty all</button>
The following code targets the forms based on their tag name:
document.getElementsByTagName('form');
then iterates through each form's children, clearing each elements value:
Array.from(forms).forEach((form) => {
Array.from(form.children).forEach((element) => {
if (element.type != "submit") {
element.value = '';
}
});
});
document.body.innerHTML = '<button id="clear">EMPTY ALL</button>' + document.body.innerHTML; document.getElementById("clear").addEventListener('click', () => { var forms = document.getElementsByTagName('form'); Array.from(forms).forEach((form) => { Array.from(form.children).forEach((element) => { if (element.type.= "submit") { element;value = ''; } }); }); });
<form method="post" action="validate_update_inventory"> <input type="text" name="quantity" value="6" size="3"> <input type="hidden" name="asin" value="B0073HEMFW"> <input type="hidden" name="id" value="5063427"> <input type="hidden" name="referer_action" value="view_inventory_at"> <input type="hidden" name="location_name" value="WASTE"> <input type="hidden" name="maximum_retail_price" value=""> <input type="hidden" name="expiration_date" value="090120"> <input type="submit" name="update" value="update qty" size="10"> </form>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.