Reputation: 401
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script>
function myf() {
alert("coming dude");
var numbersString = "1,2,3,4,5,6";
var data = numbersString.split(',');
var s = $("<select id=\"selectId\" name=\"selectName\" />");
for(var val in data) {
$("<option />", {value: val, text: data[val]}).appendTo(s);
}
s.appendTo("#msj_form");
}
</script>
</head>
<body >
<form id="msj_form" >
<button id="add" value="add" onclick="myf()">ADD</button>
</form>
</body>
</html>
While Clicking on ADD button the selbox is generating but its disappering immediatly..whats wrong in my code
While Clicking on ADD button the selbox is generating but its disappering immediatly..whats wrong in my code
Upvotes: 0
Views: 22
Reputation: 4953
The problem is that your form is getting submitted by default, so to prevent that just use preventDefault() method. Here's my solution. Hope it helps!
function myf() {
alert("coming dude");
var numbersString = "1,2,3,4,5,6";
var data = numbersString.split(',');
var s = $("<select id=\"selectId\" name=\"selectName\" />");
for(var val in data) {
$("<option />", {value: val, text: data[val]}).appendTo(s);
}
s.appendTo("#msj_form");
}
$(document).ready(function(){
$("#msj_form").submit(function(event){
event.preventDefault();
myf();
});
});
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<form id="msj_form" >
<button id="add" value="add" >ADD</button>
</form>
Upvotes: 0
Reputation: 1235
Because after your function is called the form is submitted, so what you will need to do is prevent form submission.
Try this:
<html>
<head>
</head>
<body>
<form id="msj_form" >
<button id="add" value="add">ADD</button>
</form>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
function myf(e) {
e.preventDefault(); // <-- make sure to add this
alert("coming dude");
var numbersString = "1,2,3,4,5,6";
var data = numbersString.split(',');
var s = $("<select id=\"selectId\" name=\"selectName\" />");
for(var val in data) {
$("<option />", {value: val, text: data[val]}).appendTo(s);
}
s.appendTo("#msj_form");
}
$('#add').on('click',myf);
</script>
</body>
</html>
If you'd like to learn more about preventDefault()
, see here - https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault
Upvotes: 1