国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

【已解決】webman-admin一鍵菜單,自動(dòng)生成的update.html中元素賦值的問(wèn)題。

chao

問(wèn)題描述

其中有一個(gè)字段是status,使用radio來(lái)做,發(fā)現(xiàn)無(wú)法賦值(賦值后無(wú)法顯示當(dāng)前選中)
查看layui文檔、詢問(wèn)chatgpt后:
嘗試手動(dòng)賦值渲染

document.querySelector('input[name="status"][value="' + res.data[0].status + '"]').checked = true;
form.render('radio');

這樣是渲染當(dāng)前項(xiàng)了,但是切換選中項(xiàng)不會(huì)隨著改變,form提交時(shí)也無(wú)法正確獲取選中項(xiàng)的值(永遠(yuǎn)是那個(gè)初始值)。
select元素也試了下,也是有類似的問(wèn)題。
大概率是由于我不熟悉layui導(dǎo)致的(沒(méi)道理一個(gè)框架對(duì)于這種最基本的東西都這么難用),請(qǐng)問(wèn)一下對(duì)于這種情況應(yīng)該怎么正確處理?

html代碼

<div class="layui-form-item">
    <label class="layui-form-label">狀態(tài)</label>
    <div class="layui-input-block">
        <input type="radio" name="status" value="1" title="正常" />
        <input type="radio" name="status" value="2" title="禁用" />
        <input type="radio" name="status" value="3" title="連接異常" />
    </div>
</div>

解決方案

由于沒(méi)有找到統(tǒng)一的方案,只能針對(duì)這個(gè)情況手動(dòng)處理一下

// 前面是ajax獲取數(shù)據(jù),下面代碼是在ajax的success中的處理

// 給表單初始化數(shù)據(jù)
layui.each(res.data[0], function (key, value) {
    let obj = $('*[name="'+key+'"]');
    if (key === "password") {
        obj.attr("placeholder", "不更新密碼請(qǐng)留空");
        return;
    }
    if (typeof obj[0] === "undefined" || !obj[0].nodeName) return;
    if (obj[0].nodeName.toLowerCase() === "textarea") {
        obj.val(value);
    }
    // 針對(duì)radio特殊處理
    else if ($(obj[0]).is(':radio')) {
        $('input[type="radio"][name="' + key + '"][value="' + value + '"]').attr('checked', true);
    }
    else {
        obj.attr("value", value);
        obj[0].value = value;
    }
});

form.render();

其實(shí)就是針對(duì)radio做個(gè)特殊處理,然后要注意的就是一定不要忘了 form.render() ,不寫這個(gè)是無(wú)法正確渲染出radio的選中項(xiàng)的。
然后試了一下select下拉框,只要加上了 form.render() ,無(wú)需特殊處理就能正常使用。

705 1 0
1個(gè)回答

keytehu

layui賦值后要調(diào)用 form.render(); 執(zhí)行渲染才能生效

  • 暫無(wú)評(píng)論
??