代码之家  ›  专栏  ›  技术社区  ›  Ned Batchelder

jQuery:我设置了一个微调器图像,然后提交表单,但是图像没有出现

  •  0
  • Ned Batchelder  · 技术社区  · 14 年前

    我有一个标签为“确定”的表单提交链接,我希望有一个微调器来指示在单击时发生了什么事情。在提交表单之前,我尝试将图像添加到单击的范围中,但它没有显示:

    function submitMyForm() {
        $(this).html($(this).html() + "&nbsp;&nbsp;<img src='/img/spinner.gif'>");
        $("#my_form").submit();
    }
    

    使用HTML:

    <em class="ok_btn">
        <a href="javascript:void(0);" onclick="submitMyForm();">OK</a>
    </em>
    

    4 回复  |  直到 14 年前
        1
  •  1
  •   Ned Batchelder    14 年前

    $(this)不会引用任何内容,因为没有传递任何内容。我认为您需要将元素传递给函数:

    <a href="javascript:void(0);" onclick="submitMyForm(this);">OK</a>
    

    然后js会变成:

    function submitMyForm(el) {
        $(el).html($(el).html() + "  ");
    
        2
  •  3
  •   Diodeus - James MacFarlane    14 年前

    function submitMyForm() {
        $(this).html($(this).html() + "&nbsp;&nbsp;<img src='/img/spinner.gif'>");
       window.setTimeout(function(){ $("#my_form").submit()},500)
    }
    
        3
  •  0
  •   Colin O'Dell    14 年前

    尝试更改此行:

    $(this).html($(this).html() + "&nbsp;&nbsp;<img src='/img/spinner.gif'>");
    

    致:

    $('body').append("&nbsp;&nbsp;<img src='/img/spinner.gif'>");
    

        4
  •  0
  •   Mike Webb    14 年前

    我建议,正如我在评论中提到的,您可能需要将图像添加到div中

    ... your html code here ...
    <div id="spinnerDiv">
    </div>
    

    然后将超时添加到表单中,如下所示:

    function submitMyForm() {
        $("#spinnerDiv").html("<img src='/img/spinner.gif'>");
        window.setTimeout(function()
        {
            $("#my_form").submit();
        }, 500);
    }