当字段为字段时,Sweetalert PoP-up消息不起作用

时间:2019-06-29 08:42:11

标签: javascript html sweetalert

一周前,我有一个关于Sweetalert的question。然后我得到一个对我有帮助的答案,但不幸的是,它仍然无法正常工作。当用户单击“提交”按钮时,但仅当字段被填充时,我才需要Sweetalert弹出消息(成功)。我不知道问题是什么。当前,当用户按下按钮时什么也没有发生。

这是我的代码:

function Sweetalert1(){
    var name = document.getElementById("name").value;
    var message = document.getElementById("message").value;
    var email = document.getElementById("email").value;

    if (name != " " && message != " " && email != " "){
        Swal.fire(
                'Köszönjük!',
                'Megkaptuk a leveledet és hamarosan válaszolunk!',
                'success',
    )}
}

以及HTML的一部分:

<form role="form" id="contactForm" action="contact.php" method="post">
                <div class="control-group">
                    <div class="form-group floating-label-form-group controls mb-0 pb-2">
                        <label>Név</label>
                        <input class="form-control" id="name" name="name" type="text" placeholder="Név" required="required" data-validation-required-message="Kérlek add meg a neved!">
                        <p class="help-block text-danger"></p>
                    </div>
                </div>
                <div class="control-group">
                    <div class="form-group floating-label-form-group controls mb-0 pb-2">
                        <label>Email Cím</label>
                        <input class="form-control" id="email" type="email" name="email" placeholder="Email" required="required" data-validation-required-message="Kérlek add meg az Email címed!">
                        <p class="help-block text-danger"></p>
                    </div>
                </div>
                <div class="control-group">
                    <div class="form-group floating-label-form-group controls mb-0 pb-2">
                        <label>Üzenet</label>
                        <textarea class="form-control" id="message" rows="5" placeholder="Üzenet" name="message" required data-validation-required-message="Kérlek írd be az üzeneted!"></textarea>
                        <p class="help-block text-danger"></p>
                    </div>
                </div>
                <div id="success"></div>
                <div class="form-group">
                    <button name="submit" type="submit" class="btn" id="sendMessageButton">Küldés</button>
                </div>
            </form>

3 个答案:

答案 0 :(得分:1)

我看不到按钮被触发的地方

在这一行上,

<button name="submit" type="submit" class="btn" id="sendMessageButton">Küldés</button>

您至少有两个选项可以触发按钮

第一

您可以将行更改为此

<button name="submit" type="submit" class="btn" id="sendMessageButton" onclick="Sweetalert1()">Küldés</button>

第二

您可以将其添加到您的javascript部分

$("#sendMessageButton").click(function(){
    Sweetalert1();
});

第三

您可以使用表单的提交事件

$("form").submit(function(){
    Sweetalert1();
});

完成后,将条件修改为

if (name !== "" && message !== "" && email !== "")

OR

if (name.trim() && message.trim() && email.trim())

答案 1 :(得分:0)

您的情况不正确,请尝试这样做:

if (name && message && email)
{
   // Code
}

答案 2 :(得分:0)

一个空字段不等于一个空格(" "),它等于一个空字符串("")。因此,您需要检查字段是否等于空字符串,而不是带有空格的字段:

if (name != "" && message != "" && email != "") {
  // code...
}

但是,如果您也想将其中没有文本(只有空格)的字段也视为无效,则可以将.trim()方法添加到namemessage中和email变量。通过使用修剪,您可以切换诸如  " "放入"",然后将其视为无效输入:

if (name.trim() != "" && message.trim() != "" && email.trim() != "") {
  // code...
}

由于将空字符串视为falsey(即"" == false),因此您无需检查输入的内容是否等于空字符串,而只需检查x.trim()是否等于像这样true

if (name.trim() && message.trim() && email.trim()) {
  // code...
}