表单中的switch 开关,怎么用jq控制 checked,请大神们帮帮忙,谢谢!~

提问 未结
19 490
我不是霄Li
悬赏:20飞吻
版本:layui 浏览器:
switch 开关设置,怎么控制checked。自己写了一个判断,“否”就设置开关不变,但是只要点击了,switch按钮,他就改变了。我写的jq好像也没有用,请大神帮帮忙,谢谢!~
$('input[name=whicklike]').remove('checked');
$('input[name=whicklike]').removeAttr('checked');
也不行
回帖
  • 大神帮帮忙吧
    0 回复
  • 用prop('checked',false)试一下
    0 回复
  • @岁月小偷 试了也不行
    我这个页面代码应该没错吧
    <input type="checkbox" id="check" name="whicklike" value="1" lay-skin="switch" lay-filter="like" lay-text="关注|取消" >
    0 回复
  • @岁月小偷 我的意思打开网页的时候,初始开关显示为“取消”,点击以后,进入判断,为否,则不改变开关。就现在为否开关还是变成了‘关注’。
    0 回复
  • $('input[name="whicklike"]').remove('checked');
    form.rende()
    0 回复
  • @岁月小偷 不行,我就是这么写的。。。
    0 回复
  • @我不是霄Li 我的是类似这样的
    $('input[name="whicklike"]').attr('checked', null);
    form.render()
    我这边是管用的额
    0 回复
  • @岁月小偷 你前面页面是怎么写的呀?我怎么还是不行。。。
    <input type="checkbox"  name="whicklike" value="1" lay-skin="switch" lay-filter="like" lay-text="关注|取消" >
    不用加其他了的吧
    0 回复
  • @岁月小偷 渲染这些我都写了的
    layui.use(['layer','util','form'],function () {
    var layer = layui.layer;
    var util = layui.util;
    var form = layui.form;

    form.on('switch(like)', function(data){
    var bool = data.elem.checked; //是否被选中,true或者falses
    //console.log(data.elem.checked);
    var id = "{$test[0]['id']}";
    var show = {
    'bool':bool,
    'id':id
    }
    if(bool == true){
    $.post(
    "{:U('index/like')}",
    {
    data:show,

    },function (r,status) {
    if (r == '请先登录!~'){
    layer.msg('请先登录!',{icon:5,time:1000,shift:6});
    $('input[name=whicklike]').attr('checked','null');
    form.render();
    }else {
    if (r == '1'){
    layer.tips('关注成功!','#switch',{time:600});
    }
    if (r == '0'){
    layer.msg('关注失败!',{icon:5,time:1000,shift:6})
    }
    }

    }
    )

    }
    0 回复
  • attr('checked','null');这个不对,应该是attr('checked',null);不是字符串的额是一个null
    0 回复
  • @岁月小偷 还是不行,我的还是要变成“关注”。。。 ,我简直心态崩了。。。
    0 回复
  • @岁月小偷
    我的就成了这样了
    0 回复
  • @我不是霄Li 嗯嗯,我在我本地模拟一下你的场景看看是不是有其他的原因。
    0 回复
  • @岁月小偷 好的,谢谢
    0 回复
  • @我不是霄Li 测试代码这样子的是可以让它关掉的额,可以debugger一下,首先开关会开了然后判断到符合条件之后又给关掉了。
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="js/layui/src/css/layui.css" media="all">
    <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
    </head>
    <body>
    <form class="layui-form" lay-filter="formDemo" action="">
    <div class="layui-form-item">
    <label class="layui-form-label">输入框</label>
    <div class="layui-input-block">
    <input type="text" name="title" required lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input">
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">密码框</label>
    <div class="layui-input-inline">
    <input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
    </div>
    <div class="layui-form-mid layui-word-aux">辅助文字</div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">选择框</label>
    <div class="layui-input-block">
    <select name="city" lay-verify="required">
    <option value=""></option>
    <option value="0">北京</option>
    <option value="1">上海</option>
    <option value="2">广州</option>
    <option value="3">深圳</option>
    <option value="4">杭州</option>
    </select>
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">复选框</label>
    <div class="layui-input-block">
    <input type="checkbox" name="like[write]" title="写作">
    <input type="checkbox" name="like[read]" title="阅读" checked>
    <input type="checkbox" name="like[dai]" title="发呆">
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">开关</label>
    <div class="layui-input-block">
    <input type="checkbox" name="switch" lay-filter="mySwitch" lay-skin="switch">
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">单选框</label>
    <div class="layui-input-block">
    <input type="radio" name="sex" value="男" title="男">
    <input type="radio" name="sex" value="女" title="女" checked>
    </div>
    </div>
    <div class="layui-form-item layui-form-text">
    <label class="layui-form-label">文本域</label>
    <div class="layui-input-block">
    <textarea name="desc" placeholder="请输入内容" class="layui-textarea"></textarea>
    </div>
    </div>
    <div class="layui-form-item">
    <div class="layui-input-block">
    <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
    </div>
    </form>
    <script src="js/layui/src/layui.js" charset="utf-8"></script>
    <!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->

    <script>
    //Demo
    layui.use('form', function(){
    var form = layui.form;
    var $ = layui.jquery;
    var layer = layui.layer;

    //监听提交
    form.on('submit(formDemo)', function(data){
    layer.msg(JSON.stringify(data.field));
    return false;
    });

    form.on('switch(mySwitch)', function(data){
    debugger;
    if (data.elem.checked) {
    layer.msg('这个开关不可以开!!');
    $(data.elem).attr('checked', null);
    // $(data.elem).prop('checked', false);
    form.render();
    }
    });
    });
    </script>

    </body>
    </html>
    0 回复
  • @岁月小偷 谢谢,用上边那个代码,可以实现,换成我自己的就不行了,我再去想想,谢谢了哈[赞]
    0 回复
  • @我不是霄Li 就是发交易获得状态之后再设置就不管用是吧?这个有点奇怪额
    0 回复
  • @岁月小偷 我刚才试了试,突然间好了。。。我都不知道自己改了什么[挖鼻]
    谢谢你哈
    0 回复
  • @我不是霄Li 不客气[微笑]
    0 回复