Reputation: 357
I want to add button value in text box. When I select "call", the value will be "call" in textbox and suppose when I select "meeting", the value will be "meeting" in textbox.
My problem is, when I select the value is coming multiple and also page is redirecting. I could not find solution. Thanks in advanced.
My code:
Javascript:
<script type="text/javascript">
function moveValue(num) {
var txt = document.getElementById("subject").value;
txt = txt + num;
document.getElementById("subject").value = txt;
}
</script>
Html:
<div class="form-group">
<label class="col-lg-2 control-label">Subject<span class="text-danger">*</span></label>
<div class="col-lg-10">
<input type="text" id="subject" class="form-control holiday_name" name="holiday_name" required>
</div>
</div>
<div class="form-group row">
<button type="submit" class="btn btn-default col-md-2" value="Call" onclick="moveValue(this.value)"><i class="fa fa-phone"></i> Call</button>
<button type="submit" class="btn btn-default col-md-2" value="Meeting" onclick="moveValue(this.value)"><i class="fa fa-group"></i> Meeting</button>
<button type="submit" class="btn btn-default col-md-2" value="Task" onclick="moveValue(this.value)"><i class="fa fa-tasks"></i> Task</button>
<button type="submit" class="btn btn-default col-md-2" value="Deadline" onclick="moveValue(this.value)"><i class="fa fa-flag"></i> Deadline</button>
<button type="submit" class="btn btn-default col-md-2" value="Email" onclick="moveValue(this.value)"><i class="fa fa-envelope"></i> Email</button>
<button type="submit" class="btn btn-default col-md-2" value="Lunch" onclick="moveValue(this.value)"><i class="fa fa-cutlery"></i> Lunch</button>
</div>
Upvotes: 0
Views: 77
Reputation: 193261
My problem is, when I select the value is coming multiple and also page is redirecting.
Because you submit the form. Note, that you have buttons as type submit
. Change them to just button
and it will not attempt to send form for server processing.
<button type="button" class="btn btn-default col-md-2" value="Call" onclick="moveValue(this.value)"><i class="fa fa-phone"></i> Call</button>
Upvotes: 3
Reputation: 1488
You should just set the value of subject as num which is passing from the onclick event.
function moveValue(num) {
var txt = document.getElementById("subject").value;
//txt = txt + num; //remove this line because it will bind the values
document.getElementById("subject").value = num;
return false;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
<label class="col-lg-2 control-label">Subject<span class="text-danger">*</span>
</label>
<div class="col-lg-10">
<input type="text" id="subject" class="form-control holiday_name" name="holiday_name" required>
</div>
</div>
<div class="form-group row">
<button type="submit" class="btn btn-default col-md-2" value="Call" onclick="moveValue(this.value);"><i class="fa fa-phone"></i> Call</button>
<button type="submit" class="btn btn-default col-md-2" value="Meeting" onclick="moveValue(this.value);"><i class="fa fa-group"></i> Meeting</button>
<button type="submit" class="btn btn-default col-md-2" value="Task" onclick="moveValue(this.value);"><i class="fa fa-tasks"></i> Task</button>
<button type="submit" class="btn btn-default col-md-2" value="Deadline" onclick="moveValue(this.value);"><i class="fa fa-flag"></i> Deadline</button>
<button type="submit" class="btn btn-default col-md-2" value="Email" onclick="moveValue(this.value);"><i class="fa fa-envelope"></i> Email</button>
<button type="submit" class="btn btn-default col-md-2" value="Lunch" onclick="moveValue(this.value);"><i class="fa fa-cutlery"></i> Lunch</button>
</div>
Upvotes: 0
Reputation: 1032
First you have to remove the submit attribute in the buttons, so it won't redirect the page, here is a working code: https://jsfiddle.net/yrpwop7o/1/
And the correct version of the javascript code is:
window.moveValue = function(num) {
var subject = document.getElementById("subject");
subject.value = num;
}
Upvotes: 2