jQuery - 如何在执行任何其他操作之前确保用户输入文本?

时间:2013-08-23 15:20:54

标签: jquery

我允许用户在我的应用中创建文件夹。用户点击“新建文件夹”图标后,我会显示一个带有文本框的文件夹,供用户输入文件夹名称。

如何在再次点击“新文件夹”图标之前确保用户输入名称,或者在将我的应用程序用于其他任何内容之前输入该名称?

我尝试了输入更改事件,但只有在用户尝试输入名称时才会触发该事件。

$(".new-folder-name").change(function () {
      var newFolderName = $(".new-folder-name").val();
    if (newFolderName == "") {
        alert("Please enter a name for the new folder.");
    } else {
        alert("Good, you entered a name: " + newFolderName);
    }
});

但是,如果用户只是将文本框留空并继续使用应用程序执行其他操作会怎么样?

如何在执行任何其他操作之前强制用户先输入文字?

2 个答案:

答案 0 :(得分:1)

强制用户输入
后:

alert("Please enter a name for the new folder.");

添加:

setTimeout(function() {$(".new-folder-name").focus();},10);

强制关注文本框。

此外,将其从.change()更改为.blur()

模态弹出
有几种选择。只需将文本框放在模态弹出框中,不要让它们关闭,直到它们输入有效的内容。

答案 1 :(得分:0)

就像@Richard所说的那样使用模态。

twitter-bootstrap中,您拥有该工具和其他工具。