html表单不激发javascript
html form does not fire javascript
我有以下表单和javascript,提交时未激活。我不明白问题出在哪里,所以按下按钮不会触发javascript。脚本当然包含在html中,并且路径是正确的。
var req;
function addProductToCart(){
var url = "/addToCart";
var productReference = document.getElementById("selectedProductRef");
var size = document.getElementById("selectedProductSize");
req = initRequest();
req.open("POST", url, true);
//req.onreadystatechange = callback;
req.send("selectedProductRef="+productReference.value+"&selectedProductSize="+size.value);
}
function callback(){
if (req.readyState == 4) {
if (req.status == 200) {
parseMessages(req.responseText);
}
}
}
function initRequest(){
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
req = new XMLHttpRequest();
}
else if (window.ActiveXObject){
// code for IE6, IE5
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}
<form name="addToShoppingBag" id="addToShoppingBag" >
<input type="hidden"
form="addToShoppingBag"
id="selectedProductRef"
name="selectedProductRef"
value="${selectedCart.productReference}">
<input type="button"
form="addToShoppingBag"
name="addToCart"
id="addToCart"
onclick="addProductToCart()"
class="css-button primary"
value="ADD TO SHOPPING BAG">
</form>
这里有一篇很好的博客文章,介绍了为什么要放弃使用内联javascript。
您可能想考虑使用jQuery作为一种方法,以促进使用更受事件驱动的脚本方法。它还通过$.ajax()
方法使异步请求非常直接。
这是jQuery格式的addProductToCart()
:
$('body').on('click', '#addToCart', ({
var url = "/addToCart";
$.ajax({
type: "POST",
url: url,
data: '{selectedProductRef: "'+ $('#selectedProductRef').val() + '", selectedProductSize:"' + $('#selectedProductSize').val() + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json"
});
});
var req;
function addProductToCart(){
var url = "/addToCart";
var productReference = document.getElementById("selectedProductRef");
productReferenceValue =productReference ;
var size = document.getElementById("selectedProductSize");
sizeValue=size .value;
rm = initRequest();
rm.open("POST", url, true);
//req.onreadystatechange = callback;
rm.send("selectedProductRef="+productReferenceValue +"&selectedProductSize="+size.sizeValue);
}
function callback(){
if (req.readyState == 4) {
if (req.status == 200) {
parseMessages(req.responseText);
}
}
}
function initRequest(){
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
else if (window.ActiveXObject){
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
<!-- language: lang-html -->
<form name="addToShoppingBag" id="addToShoppingBag" >
<input type="hidden"
form="addToShoppingBag"
id="selectedProductRef"
name="selectedProductRef"
value="${selectedCart.productReference}">
<input type="button"
form="addToShoppingBag"
name="addToCart"
id="addToCart"
onclick="addProductToCart()"
class="css-button primary"
value="ADD TO SHOPPING BAG">
</form>
<!-- end snippet -->
代码中的一点更改而不是req = initRequest();
,只需调用initRequest()
var size = document.getElementById("selectedProductSize");
initRequest();
req.open("POST", url, true);
initRequest()
不返回任何值。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 解析javascript表单验证器
- Javascript表单验证的缺点
- 动态Javascript表单不起作用
- 使用Ajax上传Javascript表单
- JavaScript表单验证-“;“错误”;不按需要工作
- JavaScript表单提交帮助
- HTML/Javascript表单会自动重置
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- javascript表单验证-数值和密码
- 如何使用jsoup发布javascript表单
- 使用Javascript表单提交所需的HTML5
- JavaScript表单返回,但无法正常工作
- 使用HTML/Javascript表单使用ActiveXObject创建带有嵌入图像的outlook电子邮件
- 我如何使这个javascript表单验证DRYer
- Javascript表单验证-jsFiddle错误
- JavaScript 表单操作更改RC方法发布文本输入提交
- Javascript:表单验证getElementById仅返回第一个id元素
- JavaScript表单错误
- 使用 javascript 表单文本框内容