javascript - 允许空值,同时在提交后保留输入值

标签 javascript jquery html

表单中有几个可选的输入字段。我想在提交后保留他们的输入值。

我正在阅读这篇文章JS input type date field, keep values selected after form submission但由于输入字段都是可选的,我收到错误消息:can not set property value of null in web console。

<form class="cat_select" onsubmit="setCate()">
    <input class="l2" name="l2" id="l2" type="text" style="width:30%">
    <input class="l3" name="l3" id="l3" type="text" style="width:50%">
    <button class="btn btn-outline-success my-2 my-sm-0" type="submit" id="cat_submit">Submit</button>
</form>
function setCate(){
    var l2 = document.getElementById('l2').value;
    var l3 = document.getElementById('l3').value;
}
function getl2(){
    if (localStorage.getItem("user_selected_l2") !== null) {
        return localStorage.getItem("user_selected_l2");
    }   
}
function getl3(){
    if (localStorage.getItem("user_selected_l3") !== null) {
        return localStorage.getItem("user_selected_l3");
    }   
}
//seems that can't set these as null
document.getElementById('l2').value=getl2(); 
document.getElementById('l3').value=getl3();

最佳答案

您可以使用条件三元将 null 替换为空字符串:

document.getElementById('l2').value = getl2()? getl2() : ''; 
document.getElementById('l3').value = getl3()? getl3() : '';

或者您可以使用相同的逻辑返回空字符串而不是 null:

function getl3(){
    if (localStorage.getItem("user_selected_l3") !== null) {
        return localStorage.getItem("user_selected_l3")?
               localStorage.getItem("user_selected_l3") : '';
    }   
}

关于javascript - 允许空值,同时在提交后保留输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58305318/

相关文章:

javascript - jQuery click 函数仅适用于第一个元素

javascript - 生成键、值和完成的方法,格式为 {value : . 。 , key : .。 ,完成 : . 。}

Javascript检测元素前面的元素

jquery - 如何在 colorbox 中重新定位展开的图像

javascript - 使用 HTML5 在图像上绘图

html - 使用 Perl 编辑 HTML 文件

javascript - 如何将一个变量分配给对象内的另一个变量 vanilla JavaScript

javascript - 平滑滚动到顶部然后固定/固定 float 元素

html - 在 html5 中带有标题的表单的 div 或部分?

javascript - Chromium 不会复制数组值