html 回复默认行为,原生阻止表单默认行为的方法(默认提交刷新页面)

表单一点击提交按钮(submit)必然跳转页面,可以看到一点击提交按钮,浏览器的刷新按钮闪了一下,这就是表单的默认行为。

组织默认行为,有两种办法:

第一种是input提交换成button,type类型是button,监听button的点击事件,就不会触发表单默认提交行为了。

表单添加,表格删除

商品名称

分类

提交

商品名称分类

let btn = document.querySelector(".btn");

btn.addEventListener("click", () => {

let nameVal = document.getElementById("name").value;

let categoryVal = document.getElementById("category").value;

let table = document.querySelector(".table")

let tr = document.createElement("tr");

tr.innerHTML = `

${nameVal}${categoryVal}

`

table.appendChild(tr);

document.getElementById("name").value="";

document.getElementById("category").value="";

})

//删除列表

let table = document.querySelector(".table");

table.addEventListener("click",(e)=>{

let targetTr= e.target.parentElement.parentElement;

targetTr.remove();

})

第二种是监听表单的submit事件,回调里阻止表单默认行为

let form = document.querySelector(".form-horizontal");

//(监听表单的submit事件)

form.addEventListener("submit", (e) => {

let nameVal = document.getElementById("name").value;

let categoryVal = document.getElementById("category").value;

let table = document.querySelector(".table")

let tr = document.createElement("tr");

tr.innerHTML = `

${nameVal}${categoryVal}

`

table.appendChild(tr);

document.getElementById("name").value="";

document.getElementById("category").value="";

e.preventDefault() //阻止默认行为

})

//删除列表

let table = document.querySelector(".table");

table.addEventListener("click",(e)=>{

let targetTr= e.target.parentElement.parentElement;

targetTr.remove();

})

在table上监听click事件,寻找事件源,然后把事件源的上级的上级整个删除

使用vue处理逻辑的话,两个方法,只有下面几行代码

export default {

data() {

return {

name: "",

category: "",

list: [

{

name: "张三",

category: "321"

},

{

name: "lisi",

category: "444"

}

]

}

},

methods: {

submit() {

this.list.push({

name: this.name,

category: this.category

})

},

delItem(i) {

this.list.splice(i, 1)

}

}

}

数据做双向绑定,button添加事件方法即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值