其实这里有个逻辑错误,主要是<%=i%>中的i是多少的问题。从你贴出来的代码看,你是不是连JS代码也循环输出了吧,也就是有几条购物信息,就会生成几个checknum方法,在JS里,同函数名的方法如果多次定义,则只有最后一个定义的方法有效果,那最后一个checknum方法里的<%=i%>实际就只指代最后一个文本框了。结果就是只有最后一个文本框有效果。
其实楼主只需要循环输出表格,JS代码只用一个就行了,只要在文本框触发JS动作时,把<%i%>作为参数传进JS方法就行了,例如,你可以这么写:
...
<td width="58" height="30"><input name="num<%=i%>" size="5" type="text" value="<%=goodsitem.number%>" onBlur="checknum(this.form,<%=i%>)"></td>
...
把JS方法放到循环外面,这么写:
function checknum(myform,i){
var inp = myform['num'+i]
if(isNaN(inp.value) || inp.value.indexOf('.')!=-1){
alert("请不要输入非法字符!")inp.focus()return}//判断是否为数字值
if(inp.value><%=leave%>){alert("请输入小于现有库存 ("+<%=leave%>+") 的数量!")inp.focus()return}
if(inp.value==0){
alert("请输入大于1的整数!")inp.focus()return}
if(inp.value==""){
alert("请输入修改的数量!")inp.focus()return}
myform.submit()
}
关于数字修改后触发checknum方法的问题:
楼主的checknum方法最后是要提交表单的,所以如果用键盘事件,那每一次输入一个字符或删除一个字符,都会触发表单提交动作,这应该不是楼主要的结果。字符修改后触发JS方法有专门的事件处理方法onchange。楼主可以吧onblur换成onchange试试。
这是需要多个方法才能完成的1,需要动态添加商品那一条显示的function
2,个数那个需要一个增加减少的function
3, 需要个统计总数量的
4,需要一个检测checkbox的
你做到什么程度了
两个页面传值要用后台服务器,你是指1.html和2.html这样的吗?这和angular没有关系,angular是用来实现html和js的绑定的html:<input ng-model="zs.name"/>
js:app.controller('控制器的名字',function($scope){
$scope.zs={
name:'张三',
age:18
}
})
这样$scope.zs.name变化会使input的value值改变,同时input的oninput事件触发时会通知$scope.zs.name改变