将点击次数分配给隐藏值
assigning the number of clicks to a hidden value
<form action='productsphp.php' method='post'>
<button type="button" onclick="add1()">Add</button>
<input type="hidden" id="p1" value="" name="p1"/>
<input type="submit" value="Save" />
</form>
<script type="text/javascript">
function add1(){
var p= document.getElemenetById('p1').value;
var p1=0;
p1=p+1;
p=p1;
}
</script>
在productsphp.php页面
<?php
if(isset($_POST['p1'])){
$p1=$_POST['p1'];
echo "p1 is".$p1;
}
?>
它不工作。我想每次按钮被点击去add1()函数并增加它。这样我就能知道用户点击了多少次。然后在按save时保存隐藏值中的点击次数,然后取该值并将其保存在数据库中。但价值仍然是零。请帮助
您的函数名有一个错别字(getElemenetById
,额外的e
),并且您从未将值重新发送到输入字段。试一试:
<form action='productsphp.php' method='post'>
<button type="button" onclick="add1()">Add</button>
<input type="hidden" id="p1" value="" name="p1"/>
<input type="submit" value="Save" />
</form>
<script type="text/javascript">
function add1(){
var p= !parseInt(document.getElementById('p1').value) ? 0 : parseInt(document.getElementById('p1').value);
p++;
document.getElementById('p1').value = p;
}
</script>
您根本不必使用其他元素,您可以操作当前元素上的属性,例如data-clicks。它看起来像这样:
<button type="button" onclick="add1(this);" data-clicks="0">Add</button>
函数为:
function add1(element){
var currentClicks = element.getAttribute('data-clicks');
element.setAttribute('data-clicks', currentClicks + 1);
}
减少页面上的DOM元素可以提高性能,考虑一下。
试试这个:
function add1(){
var p = document.getElementById('p1').value,
p1 = parseInt(p) + 1;
document.getElementById('p1').value = p1;
}
这样,计算后使用p1
的值。您还需要设置p1
的初始值:
<input type="hidden" id="p1" value="0" name="p1"/>
<form action='productsphp.php' method='post'>
<button type="button" onclick="add1()">Add</button>
<input type="text" id="p1" value="" name="p1"/>
<input type="submit" value="Save" />
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
function add1(){
var p= document.getElementById('p1');
if(p.value) {
p.value = parseInt(p.value) +1;
}else {
p.value = 1;
}
}
</script>
这是一个1-line:D
function add1(){
document.getElementById("p1").value = Number(document.getElementById("p1").value) + 1
}
注意:你的点击次数很容易被这种方式欺骗。使用jquery代替ajax
你可以使用简单的javascript
<script type="text/javascript">
var i=document.getElementById('p1').value;
i=(isNaN(i))?0:i;
function add1(){
count++;
//alert(count);
document.getElementById('p1').value=count;
}
</script>
Jquery或<script>
var i=$('#p1').val();
i=(isNaN(i))?0:i;
$('button').click(function(){
$('#p1').val(++i);
});
</script>
完整的html文件
<html>
<head>
<script src="jquery.min.js"></script>
</head>
<body>
<form action='productsphp.php' method='post'>
<button type="button" onclick="add1()">Add</button>
<input type="hidden" id="p1" value="" name="p1"/>
<input type="submit" value="Save" />
</form>
<script type="text/javascript">
//use one at a time. This is just a demonstration how to do this in both
//jquery and javascript
/* Javascript way of doing this -
var i=document.getElementById('p1').value;
i=(isNaN(i))?0:i;
function add1(){
i++;
document.getElementById('p1').value=i;
}
*/
/* JQuery way of doing this*/
var i=$('#p1').val();
i=(isNaN(i))?0:i;
$('button').click(function(){
$('#p1').val(++i);
});
</script>
</body>
</html>
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 显示5秒后隐藏潜水
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何获取多个复选框值并分配给隐藏字段
- 如何将 javascript 变量分配给隐藏的输入
- JS - 为单元格分配隐藏值
- 如何从代码隐藏中分配 $(document).ready 中的值
- 将值分配给页面客户端脚本中的已注册隐藏字段
- 在循环访问集合时将动态 ID 分配给隐藏字段
- 将点击次数分配给隐藏值
- 如何将Id和字段值分配给隐藏字段
- 中继器“onclick”中的 LinkButton 为隐藏的输入分配一个值
- 当将选项的文本分配给隐藏输入时,如何从选择选项中删除HTML nbsp标记
- 在js中分配的隐藏值在回发后丢失
- 在代码隐藏中分配 JS,以便文本框接收焦点
- 无法让 javascript 将 id 分配给隐藏字段