2016-02-13 34 views
0

我的jQuery不工作。这是一个函数,应该从我的表单更新一个数字。我试图在我的外部JavaScript上设置一个“Hello World”,以查看脚本是否被调用。这是工作,如果我删除id =“sub”在我的按钮type =“submit”。如果id =“sub”在我的按钮type =“submit”中,hello world不起作用,这意味着我的脚本不能正常工作,因为我需要id =“sub”。提交按钮工作,如果id不见了

任何人都可以看到为什么会发生这种情况吗?

HTML:

<div class="col-lg-6 bg-success">Content 
    <form class="form-inline" id="myForm" action="select.php" method="post"> 
     <div class="form-group"> 
      <label for="inputNumber"></label> 
      <input type="number" class="form-control" name="numbervalue" id="numberinput" placeholder="Number"> 
      <button type="button" class="btn btn-success" id="sub">Insert</button> 

     </div> 

    </form> 
<span id="result"></span> 
</div> 

JS:从数据库

// Insert function for number 
function clearInput() { 
    $("#myForm :input").each(function() { 
     $(this).val(''); 
    }); 
} 

    $(document).ready(function(){ 
     $("#sub").click(function(e) { 
     e.preventDefault(); // remove default action(submitting the form) 
     $.post($("#myForm").attr("action"), 
     $("#myForm :input").serializeArray(), 
     function(info){    
     $("#result").html(info); 
     }); 
     clearInput(); 
    }); 
    }); 


// Recieve data from database 
$(document).ready(function() { 
     setInterval(function() { 
     $('.latestnumbers').load('response.php') 
     }, 3000); 
    }); 

返回DIV:

<!-- Show Numbers In Left Side--> 

       <div class="col-lg-1" id="show" style="list-style:none; padding: 4px 0px 0px 0px;"> 
        <div class="fixed-width-col border" class="latestnumbers"> 
         <?php include('response.php');?> 
        </div> 
       </div> 
+0

你能为我们提供一个jsfiddle.net? – Oleander

+0

尝试删除e.preventDefault(); –

+0

你好。这是我的所有网页的小提琴吗?如果我删除e.preventDefault(),我将被导向到一个新的空白页面。这个数字在我回去时被添加,但是也添加了一个0。 – Julie24

回答

1

下面是HTML:

<div class="col-lg-6 bg-success">Content 
    <form class="form-inline" id="myForm" action="select.php" method="post" onSubmit="return sayHello()"> 
    <div class="form-group"> 
     <label for="inputNumber"> 
     <Label> 
      <input type="number" class="form-control" name="numbervalue" id="numberinput" placeholder="Number"> 
      <button type="button" class="btn btn-success" id="sub">Insert</button> 
      <span id="result"></span> 
    </div> 

    </form> 

</div> 

和Javascript:

function sayHello() { 
    alert("Hello World"); 
    return true; 
} 

$(document).ready(function() { 
    $("#sub").click(function(e) { 
    sayHello(); 
    }); 
}); 

这里是JS小提琴链接:

https://jsfiddle.net/2b0noxjw/6/

+0

关闭此'

+0

谢谢你的答案。这是工作,但我不知道你如何将实际功能集成在js中,而不是Hello World。这只是一个测试,看看脚本是否被调用。 – Julie24

+0

@ Julie24尝试调用它应该工作的实际功能。没有理由它不会工作 – shu

0

而不是使用

<button type="submit" class="btn btn-success" id="sub">Insert</button> 

请使用这个

<button type="button" class="btn btn-success" id="sub">Insert</button> 

可能会有所帮助。

感谢

+0

非常感谢您的建议。我试图添加你的代码,但它仍然是一样的。 – Julie24

0

这可能是它的原因......当你删除按钮即

e.preventDefault(); 

的默认操作您删除按钮动作,而不是提交。 所以,你可以当你正在使用type="submit"当单击该按钮时按钮的submit事件被称为像这样

<button type="submit" id="sub" onClick="somefunctiontodosomestuff()">insert</button> 
+0

你好Shrikanth。我试图添加你的代码,但仍然是这样的:/ – Julie24

+0

你是否试图在提交到页面之前修改输入的值? –

+0

你也可以添加这个问题的小提琴......只是在这个问题的代码是足够的 –

0

添加一个onClick属性到您的提交按钮。但是,由于您在点击处理程序中使用e.preventDefault();,它会取消该事件。

你需要按钮的type属性更改为button,使其充当简单的按钮

<button type="button" class="btn btn-success" id="sub">Insert</button> 

后上述变化,你将不需要0​​因此也将其删除。

+0

你好。非常感谢。我试图删除e.preventDefault();并插入类型=“按钮”,但它仍然是相同的: -/ – Julie24

0

您加入click方法您的按钮,那么这个按钮没有调用表单提交。

你应该称呼它在你点击的方法:(jQuery submit

$("#myForm").submit(); 
+0

谢谢你的回答。我现在用我的代码更新了我的问题。它如何照顾你的意见? – Julie24

+0

你想更改操作URL并提交表单吗? – Alireza

+0

您使用'jQuery post方法'提交fotm与ajax并在成功答案后设置结果。这与第一个问题不同。 – Alireza