Submit
text
似乎已经问过一百万次,但是我读过的问题没有回答我的问题(我不认为)。
eDit
感谢您的所有回应;最大的问题是我试图在表单元素之后调用的外部
JavaScript Function
文件中引用一个函数。
不需要在提交表单处理程序功能中添加另一个
Javascript
。我为为什么这种方法如此普遍感到困惑。如果您需要获取多个表单的所有值,该怎么办?写数十个元素选择器?
我认为以下内容要干净很多:输入可以包含一个
name
function submitForm(event) {
event.preventDefault()
alert(event.target.elements.searchTerm.value)
}
<form onsubmit="submitForm(event)">
<input name="searchTerm"/>
<button>Submit</button>
</form>
function submitForm(that) {
alert(that.searchTerm.value)
}
<form onsubmit="submitForm(this)">
<input name="searchTerm"/>
<button>Submit</button>
</form>
由于处理程序本身具有隐式
<form onsubmit="alert(searchTerm)">
<input name="searchTerm"/>
<button>Submit</button>
</form>
details)。
with(this)
(在非lambda函数中),因此您也可以做
this
document.querySelector('#myForm').addEventListener('submit', function() {
event.preventDefault()
alert(this.elements.searchTerm.value)
});
<form id="myForm">
<input name="searchTerm"/>
<button>Submit</button>
</form>
:(2
)
Object.fromEntries
function submitForm(event) {
event.preventDefault()
const obj = Object.fromEntries(new FormData(event.target))
// Prints: { searchTerm: "...", myCheckbox: "on" }
console.log(obj)
return false;
}
<form onsubmit="submitForm(event)">
<input name="searchTerm"/>
<input type="checkbox" name="myCheckbox"/>
<button>Submit</button>
</form>
jsfiddle在这里:
wimits对于提交处理程序结束时防止默认行为很重要,否则该表格将发布并重新加载页面。
其他人已经证明,也可以使用表单元素的HTML属性,这是个人喜好,但是我更喜欢JS和HTML之间的更清洁的分离。$('#theform').submit(function() {
console.log($('#searchTerm').val());
return false;
});
Html:
function checkForm(){
console.log(document.getElementById('searchTerm').value);
return false;
}
在单击按钮:
js:
<form onsubmit='return checkForm();'>
<input type="text" id="searchTerm" />
<input type="submit" value="Submit" id="submitButton" />
</form>
Html:
看到demo
here当您在表格中包含提交类型的输入时,您可以使用称为
<form id="searchForm">
<input type="text" id="searchTerm" />
<input type="submit" value="Submit" id="submitButton" />
</form>
的属性。这是一些文档http://www.w3schools.com/tags/ev_onsubmit.asp
。
代码看起来像这样
var searchTerm = document.getElementById('searchTerm');
var submitButton = document.getElementById('submitButton');
submitButton.onclick = function () {
console.log(searchTerm.value);
};
要在外部文件中具有这样的功能,您最好的选择是在on Load事件中将提交事件接线:
<form onsubmit="submitForm()">
<input type="text" id="searchTerm"/>
<input type="submit" value="Submit" id="submitButton" />
</form>
<script>
function submitForm() {
let input = document.querySelector('#searchTerm');
console.log(input.value);
return false;
}
</script>
window.onload=function() {
document.getElementById("form1").onsubmit=function(e) {
e=e?e:event;
e.preventDefault(); // cancel the submit
var val = document.getElementById("searchTerm").value;
console.log(val);
}
}
<form id="form1">
<input type="text" id="searchTerm" />
<input type="submit" value="Submit" id="submitButton" />
</form>
$(function() {
$("#form1").on("submit",function(e) {
e.preventDefault(); // cancel the submit
var val = $("#searchTerm").val();
console.log(val);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="form1">
<input type="text" id="searchTerm" />
<input type="submit" value="Submit" id="submitButton" />
</form>
.submit()
事件:
事件:
因此,主要问题是我在
$("form").submit(function(e) {
console.log("form data: %o", $(this).find("#searchTerm").val());
e.preventDefault();
});
元素的底部包括了<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form>
<input type="text" id="searchTerm" />
<input type="submit" value="Submit" id="submitButton" />
</form>
html
<form>
javascript
onsubmit