views:

123

answers:

5

I have an anchor like this:

<a href="#" rel="1 4 7 18 ">Anchor</a>

Where 'rel' attribute values are ids of some items.
Than I have a form with an input, where user should type an id and click submit button.
On submit button click I need to check the value of input like this:

var value = $('a').attr('rel'); // get anchor 'rel' ids
var uservalue = $('input[type='text']').val();
if ( uservalue == '1' || uservalue == '4' || uservalue == '7' || uservalue == '18') {
// however I need the line above are created dynamically based on 'value' var
  alert('The id exists');
  return false;
} else {
  return true;
}

So, the question is how to create a line below dynamically based on anchor 'rel' attribute values?!
This is the line:

if ( value == '1' || value == '4' || value == '7' || value == '18') {
+1  A: 

you can create an array of values from the original rel value, and then check for a single value existence with inArray() method:

var values = $('a').attr('rel').split(' ');
alert ($.inArray(userSubmittedValue, values));
mamoo
+1  A: 
var values = $('a').attr('rel').split(' ');

and now your values array will contain all the values. Loop through the array and do comparison.

rahul
A: 

Sorry the Answer is deleted as i misunderstood the question. But i think @rahul's answer is fine.

Salil
A: 

I resolved the thing by myself:

var value = $('a').attr('rel'); // get anchor 'rel' ids
var uservalue = $('input[type='text']').val();

if ( value.match(uservalue) ) {
  alert('The id exists');
  return false;
} else {
  return true;
}

It was just necessary to put a match function.
Match function matches any result of a string, not the equal one.

value.match(uservalue)

The line above makes the following: searches any uservalue in value variable and match it.

Working example is placed here: http://jsfiddle.net/nYVX4/

Nikita Sumeiko
In your example "2" will return "The id exists" because it matched "21".
Jeffery To
Yeah, Jeffery To, you are right!
Nikita Sumeiko
A: 
var uservalue = $('input:text').val();

if ($('a[rel~="' + uservalue + '"]').length > 0) {
    alert('The id exists');
    return false;
} else {
    return true;
}

More: http://api.jquery.com/attribute-contains-word-selector/

Jeffery To
Also nice solution. Thx.
Nikita Sumeiko