后盾js验证var val = data.obj.val() * 1;这里*1和下边的opt[0] * 1是什么意思。

JavaScript033

后盾js验证var val = data.obj.val() * 1;这里*1和下边的opt[0] * 1是什么意思。,第1张

val()方法拿出的值一般来说是字符串, * 1 转换类型的同时做了格式校验。

chrome控制台,输入: undefined * 1,输出: NaN

输入: "//drop table order" * 1,输出: NaN

输入: "aaa" * 1,输出: NaN

输入: "" * 1,输出: 0

输入: "0.2" * 1,输出: 0.2

题目中没有给出options[data.name].rule["num"]的值,目前的信息推断不出opt[0] 和opt[1]是什么,这边的乘以1也是类型转换,经过split(/\s*,\s*/)方法得到的是字符串数组。

个人见解* 1有点黑科技,正常点用!isNaN()判断,其次还可以写个正则表达式判断。

假如你要传一个name的值

html部分可以这样写:

<a class="btn" href="javascript:void(0)" data-name="<?= Html::encode($model->name) ?>" >传值</a>

//=============================

js部分这样写(jq):

$('.btn').click(function(){

var $this = $(this)

var name = $this.attr('data-name')

//然后用ajax访问后台的接口

$.ajax({

//.......

})

}

用不用TP都是可以实现的.生成数据表的过程就只是sql 语句字符串的拼接

至于表单多少的问题,使用 js动态添加即可

如果还有什么更多的疑问,可以去后盾人学习下视频,这样非常有帮助的。