提交表单后如何更改div?

Posted

技术标签:

【中文标题】提交表单后如何更改div?【英文标题】:How to change the div after submit the form? 【发布时间】:2017-03-08 17:35:18 【问题描述】:

提交表单后如何更改表单和结果的div背景?我想将表单的背景和结果从图像更改为颜色。

如何做到这一点?我正在尝试我找到的这个解决方案,但它不起作用,http://jsfiddle.net/tymeJV/YL6Da/

Jsfiddle

<form action="" method="post" name="locator">
    <div class="locator-div">
        <select name="locator1_list" id="filterby">
            <option name="default" class="filter_by" value="Select by">Select by</option>
        </select>
    </div>
    <span class="or">or</span>
    <div class="locator-div">
        <select name="locator1_list" id="filterby">
            <option name="default" class="filter_by" value="Select by">Select by</option>
        </select>
    </div>
    <input type="submit" value="List all locations" class="location-submit">
</form>

<div class="records"><div><span class="icons-tabbed-store icon-icon-stores"> Location 1</span></div></div>

【问题讨论】:

【参考方案1】:

试试这样:

$("form").submit(function(e) 

     e.preventDefault();
    var bool = false;
    
    if (bool) 
        $("form").addClass("success");
        $(".records").addClass("error");
     else 
        $("form").addClass("error");
        $(".records").addClass("success");
    
);

复制该 css 类并添加 background-image:none

【讨论】:

【参考方案2】:

我不确定,但无论如何我都猜对了。

如果你需要改变任何元素的样式,你需要做的就是使用这个jQuery css方法,例如:-

$("#message").css("background-color","green")

或者你可以使用 AddClass 方法,这就是你在 fiddle 上所做的

为什么它不起作用,那是因为您在 textarea 中编写了内联样式

style="color: white; background-color: grey; display: none

并且内联样式具有最高优先级,因此它将替换/覆盖任何用外部css类编写的样式,例如“.success”

因此,您可以选择使用类并使用 AddClass / removeClass 方法,并且不要在标签本身中编写样式

使用内联样式并使用 css 方法来更新它

【讨论】:

【参考方案3】:

您想要同步还是异步?如果是Asynch,则需要使用AJAX:

$("#id-of-form").submit(function(e) 
e.preventDefault();

$.ajax(
    url: 'url-of-form',
    type: 'post',
    success: function (response)
    
        var bool = false;

        if (bool) 
            $("#message").fadeIn("slow").removeAttr("style").addClass("success").text("Successful!");
         else 
            $("#message").fadeIn("slow").removeAttr("style").addClass("error").text("Failed");
        
    
); 
);

基本上,您在这里所做的是将一个函数附加到提交事件并通过 Ajax 重新提交它,从而进行异步调用。

如果你想要同步,你需要使用 php 或任何你正在使用的语言。

【讨论】:

抱歉回复晚了。但我没有使用 ajax 当您提交表单时,它会向您提供的操作发送请求,您自己附加的代码并在发送请求之前被激活,它永远不会起作用。你需要使用你的服务器端语言,你的语言是什么? 提交表单时,我使用的是典型的if(isset($_POST['submit'])) 好吧,你想要像&lt;form action="" method="post" name="locator" class="&lt;?php echo isset($_POST['submit']) &amp;&amp; $_POST['your-var-name'] == 'something' ? 'success' : 'error' ?&gt;"&gt;这样的东西,它被称为三元运算符,基本上是一个IF条件简写...

以上是关于提交表单后如何更改div?的主要内容,如果未能解决你的问题,请参考以下文章

表单提交成功后如何在 div 中创建成功消息?

成功提交表单后如何在div中创建成功消息?

WordPress 强大的表单 - 成功提交表单后更改标题

如何在本页提交表单把提交的值显示在本页面上? 请高手把详细的讲解过程给我说一下。谢谢!

更改后提交表单复选框

将表单添加到页面后提交表单