当输入为空时,jQuery返回false并按下保存,但是当键入并单击“保存”时,仍返回false

时间:2016-12-29 06:27:55

标签: javascript jquery

当我点击我的超链接按钮和模态弹出窗口然后按保存,如果输入标题为空,则返回false,这是正确的,但是当我再次输入输入并按保存时,它仍然返回false。

  

问题如果我点击我的保存按钮并输入#title为空如何让它在空时返回false但是让我在输入文本时保存它?

Codepen Example //更新了工作代码

这与

有关
if ($.trim(sel) == '') {
    return false;
} else {
    textarea.value = textarea.value.substring(0,start) + replace +
    textarea.value.substring(end,len) + '\n' + id;
    $('#myLink').modal('hide');
}

完整脚本

$('#myLink').on('shown.bs.modal', function() {
    var text = getSelectedText();
    $('#title').val(text);
    $('#url').val('http://');
});    

function getSelectedText() {
    var textarea = document.getElementById("message");
    var len = textarea.value.length;
    var start = textarea.selectionStart;
    var end = textarea.selectionEnd;
    var sel = textarea.value.substring(start, end);
    return sel;
}

var counter = 0;

$('#save-link').on('click', function(e) {
    var textarea = document.getElementById("message");
    var len = textarea.value.length;
    var start = textarea.selectionStart;
    var end = textarea.selectionEnd;
    var sel = textarea.value.substring(start, end);

    var replace = '[' + $('input#title').val() + ']' + '[' + counter + ']';

    var id = '\n\n   [' + counter + ']: ' + $('input#url').val();

    counter++;

    if ($.trim(sel) == '') {
        return false;
    } else {
        textarea.value = textarea.value.substring(0,start) + replace +
        textarea.value.substring(end,len) + id;
        $('#myLink').modal('hide');
        $('.alert').remove();
    }
}); 

2 个答案:

答案 0 :(得分:0)

我现在有一个有效的解决方案。我不得不改变一些有效的事情code

在这一部分我添加了trim()

$('#myLink').on('shown.bs.modal', function() {
    var text = getSelectedText();
    $('#title').val(text.trim());
    $('#url').val('http://');
}); 

我添加的内容改为

if ($('#title').val().length > 0) {
    textarea.value = textarea.value.substring(0,start) + replace +
    textarea.value.substring(end,len) + '\n' + id;
    $('#myLink').modal('hide');
    $('#myLink form')[0].reset();
} else {

    return false;
}

来自

if ($.trim(sel) == '') {
    return false;
} else {
    textarea.value = textarea.value.substring(0,start) + replace +
    textarea.value.substring(end,len) + '\n' + id;
    $('#myLink').modal('hide');
}

答案 1 :(得分:-1)

"保存"按钮'点击'功能,检查线

Embassy

在继续进行之前,根据变量var len = textarea.value.length; 的值进行验证。