[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

jquery - set value of hidden input field based on values of text fields

Posted on 2010-11-22
3
Medium Priority
?
914 Views
Last Modified: 2012-06-21
I have three form fields: name, first name, and lastname. The name field is hidden and I'm trying to set the value to the firstname + lastname on keypress. I'm also trying to format it so that the characters are all lowercase and spaces are transformed into dashes.

So:

<input type="text" name="firstname" value="John John" />
<input type="text" name="lastname" value="Doe" />
<input type="hidden" name="name" value="john-john-doe" />

Open in new window


I've been trying to use the following code, but it's not working...

         
   $('input[name=field_firstname[0][value]]').keyup(function() {
                    var firstname = $('input[name=field_firstname[0][value]]').val();
                    var lastname = $('input[name=field_lastname[0][value]]').val();
                    $('input[name=name]').val(firstname.replace(/\s/g, "-").toLowerCase()+lastname.replace(/\s/g, "-").toLowerCase());
            });

            $('input[name=field_lastname[0][value]]').keyup(function() {
                    var firstname = $('input[name=field_firstname[0][value]]').val();
                    var lastname = $('input[name=field_lastname[0][value]]').val();
                    $('input[name=name]').val(firstname.replace(/\s/g, "-").toLowerCase()+lastname.replace(/\s/g, "-").toLowerCase());
            });

Open in new window

0
Comment
Question by:n00b0101
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 16

Accepted Solution

by:
Justin Mathews earned 2000 total points
ID: 34190437
This should work:
$(document).ready(function(){
$('input[name=firstname]').keyup(function() {
                var firstname = $('input[name=firstname]').val();
                var lastname = $('input[name=lastname]').val();
                $('input[name=name]').val(firstname.replace(/\s/g, "-").toLowerCase()+lastname.replace(/\s/g, "-").toLowerCase());
        });

        $('input[name=lastname').keyup(function() {
                var firstname = $('input[name=firstname').val();
                var lastname = $('input[name=lastname').val();
                $('input[name=name]').val(firstname.replace(/\s/g, "-").toLowerCase()+lastname.replace(/\s/g, "-").toLowerCase());
        });
});

Open in new window

0
 
LVL 16

Expert Comment

by:Justin Mathews
ID: 34190470
Sorry, slight correction:
$(document).ready(function(){
$('input[name=firstname]').keyup(function() {
                var firstname = $('input[name=firstname]').val();
                var lastname = $('input[name=lastname]').val();
                $('input[name=name]').val(firstname.replace(/\s/g, "-").toLowerCase()+lastname.replace(/\s/g, "-").toLowerCase());
        });

        $('input[name=lastname]').keyup(function() {
                var firstname = $('input[name=firstname]').val();
                var lastname = $('input[name=lastname]').val();
                $('input[name=name]').val(firstname.replace(/\s/g, "-").toLowerCase()+lastname.replace(/\s/g, "-").toLowerCase());
        });
});

Open in new window

0
 
LVL 17

Expert Comment

by:jrm213jrm213
ID: 34190477
Hi,
It might be better to use .blur() instead of .keyup, then you are running your code a lot less, and blur will get called whenever that field loses the focus...

plus unless for some reason you can't do it, it would be good to give your input boxes an id and use that to find them. I believe id is technically a required attribute anyway.
<script type="text/javascript">
	$(document).ready(function() {
		$('#firstname,#lastname').blur(function() {
			frst = $('#firstname').val().toLowerCase().replace(/ /g,'-');
			lst = $('#lastname').val().toLowerCase().replace(/ /g,'-');
			$('#name').val(frst + "-" + lst);
			alert($('#name').val());
		});
	});
</script>

Open in new window

0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Active Directory replication delay is the cause to many problems.  Here is a super easy script to force Active Directory replication to all sites with by using an elevated PowerShell command prompt, and a tool to verify your changes.
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to count occurrences of each item in an array.
Suggested Courses

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question