关于javaScript问题 购物车的实现

JavaScript014

关于javaScript问题 购物车的实现,第1张

关于只有最后一个文本框能触发checknum方法的问题:

其实这里有个逻辑错误,主要是<%=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改变