2016-02-13 2 views
0

Мой jQuery не работает. Это функции, которые должны обновлять число из моей формы. Я попытался установить «Hello World» на моем внешнем JavaScript, чтобы узнать, вызван ли сценарий. Это работает, если я удалю id = "sub" в моей кнопке type = "submit". Если id = «sub» находится в моей кнопке type = «submit», мир привет не работает, а это значит, что мой сценарий ниже не работает, так как мне нужен id = «sub».submit button работает, если 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 Fiddle:

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

+0

закрыть эту '<метку for =" inputNumber ">' будет работать – shu

+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(); 

Вы удалили действие кнопки, а не представить. Таким образом, вы можете добавить атрибут OnClick к кнопке представить, как этот

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

Hello Shrikanth. Я попытался добавить ваш код, но все тот же:/ – Julie24

+0

Вы пытаетесь изменить значение ввода до его отправки на страницу? –

+0

И вы также можете добавить скрипку этого вопроса ... просто кода в этом вопросе достаточно –

0

Как вы используете type="submit" когда кнопка нажал submit событие кнопки вызывается. Однако, поскольку вы используете e.preventDefault(); в обработчике кликов, он отменяет событие.

Вы должны изменить атрибут кнопки type в button так, что действуют как простая кнопка

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

После вышеуказанных изменений не потребуется e.preventDefault() таким образом, и снимите его.

+0

Привет. Большое спасибо. Я попытался удалить e.preventDefault(); и введите type = "button", но он все тот же: -/ – Julie24

0

Вы добавили click метод вашей кнопки, то эта кнопка не вызывала форму submit.

Вы должны назвать его, как это на ваш метод щелчка: (jQuery submit)

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

Благодарим вас за ответ. Я обновил свой вопрос с помощью своего кода прямо сейчас. Как это зависит от вашего мнения? – Julie24

+0

Вы хотите изменить URL-адрес действия, а затем отправить форму? – Alireza

+0

Вы использовали 'jQuery post method' для отправки fotm с помощью ajax и установки результата после успешного ответа. это отличается от первого вопроса. – Alireza