Reputation: 13
Let say I have two fields with id "name" and "address". I want to show the actual value in the div message when I show it to user. And I did
<input type="text" id="name" value="MyName" />
<input type="text" id="address" value="myaddress" />
<div style="visibility:hidden">
<div>Your name is $(name)</div>
<div>Your address is $(address)</div>
</div>
I tried
<div style="visibility:hidden">
<div>Your name is <script>$("input[id=name]").val()</script></div>
<div>Your address is <script>$("input[id=address]").val())</script></div>
</div>
I am getting empty name and address.
Questtion is how can I fix it, is there any better approach? like
<div style="visibility:hidden">
<div>Your name is <script>GetValue(name)</script></div>
<div>Your address is <script>GetValue(address)</</script></div>
</div>
and use jquery to replace values?
Upvotes: 1
Views: 8266
Reputation: 1433
Give the two result divs ids, and so the enclosing (hidden) div:
<input type="text" id="name" value="MyName" />
<input type="text" id="address" value="myaddress" />
<div id="result" style="visibility:hidden">
<div id="result_name"></div>
<div id="result_address"></div>
</div>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#name').change(function() {
jQuery('#result_name').text('Your name is ' + jQuery(this).val());
});
jQuery('#address').change(function() {
jQuery('#result_address').text('Your address is ' + jQuery(this).val());
});
jQuery('#result').css('display', 'block');
});
</script>
Upvotes: 0
Reputation: 22527
I have created a jsfiddle here: http://jsfiddle.net/7se87/
$("input").keyup(function () {
var spanclass = $(this).attr('id');
var value = $(this).val();
$("span."+spanclass).text(value);
}).keyup();
<input type="text" id="name" value="MyName" />
<input type="text" id="address" value="myaddress" />
<div style="display:block;">
<div>Your name is <span class='name'></span></div>
<div>Your address is <span class='address'></span></div>
</div>
Upvotes: 0
Reputation: 14327
.val()
returns the value, but doesn't write it to the DOM. You can get it to work by using document.write
:
<div style="visibility:hidden">
<div>Your name is <script>document.write($("input[id=name]").val());</script></div>
<div>Your address is <script>document.write($("input[id=address]").val());</script></div>
</div>
But a way better approach would be more along the lines of
<div style="visibility:hidden">
<div id="name-div"></div>
<div id="address-div"></div>
</div>
<script>
$("#name-div").text("Your name is " + $("#name").val());
$("#address-div").text("Your address is " + $("#address").val());
</script>
Upvotes: 1
Reputation: 82893
Try this:
<input type="text" id="name" value="MyName" />
<input type="text" id="address" value="myaddress" />
<div style="visibility:hidden">
<div>Your name is <span id="userName"></span></div>
<div>Your address is <span id="userAddress"></span></div>
</div>
<script type="text/javascript">
$(function(){
$("#userName").text($("#name").val());
$("#userAddress").text($("#address").val());
});
</script>
Upvotes: 1