1

HTML:

<input type="text" onblur="tournamentPrize(this.value);" placeholder="Player Number" id="player_number" name="data[Tournament][player_number]"> 

Javascript:

function tournamentPrize(v){
        var myArray=[2, 4, 8, 16, 32, 64, 128];
        var field_val = v;
        if(myArray.indexOf(field_val)==-1){ //alert(myArray.indexOf(field_val));
            if(field_val==2){
                $('#_1st_prize').removeAttr('disabled');                
                $('#_2nd_prize').attr('disabled','disabled');
                $('#_2nd_prize').val('');               
                $('#_3rd_prize').attr('disabled','disabled');
                $('#_3rd_prize').val('');
                $('#_4th_prize').attr('disabled','disabled');
                $('#_4th_prize').val('');               
                $('#rest_prize').attr('disabled','disabled');
                $('#rest_prize').val('');
            }else if(field_val==4){
                $('#_1st_prize').removeAttr('disabled');                
                $('#_2nd_prize').removeAttr('disabled');            
                $('#_3rd_prize').attr('disabled','disabled');
                $('#_3rd_prize').val('');
                $('#_4th_prize').attr('disabled','disabled');
                $('#_4th_prize').val('')
                $('#rest_prize').removeAttr('disabled');
            }else{
                           alert("You have entered "+field_val+" number");
            }
        }
        else{
            alert("You have entered wrong number"); 
        }
    }

I have calling tournamentPrize() function in onblur this field when i entered any number it is not showing the proper result. always display -1

I want to get my proper result when i will enter 2,4,8,16,32,64 and 128 But if i am entered any number except above number the result also showing wrong.

Suppose i want to enter 3 the alert box will be come alert("You have entered wrong number"); but it is showing alert("You have entered 3 number");

Please somebody help me

3
  • should be if (myArray.indexOf(field_val) !== -1) Commented Jan 21, 2014 at 7:09
  • Maybe you are also searching a polyfill of .indexOf() for Internet Explorer < 9: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… Commented Jan 21, 2014 at 7:11
  • I have using mozilla Firefox 26.0 Commented Jan 21, 2014 at 7:15

3 Answers 3

2
function tournamentPrize(v){
        var myArray=[2, 4, 8, 16, 32, 64, 128];

        var field_val = +v; // convert value to number from string
        // OR var field_val = parseInt(v); OR var field_val = Number(v);

        if(myArray.indexOf(field_val) !== -1){ //entered valid value in array
            if (field_val==2) {
               ....
            } else if(field_val==4){
               .....
            } else{
               alert("You have entered "+field_val+" number");
            }
        }
        else{
            alert("You have entered wrong number"); 
        }
}
Sign up to request clarification or add additional context in comments.

5 Comments

Showing Wrong result if i entered 2 it is showing alert("You have entered wrong number");
first check you are getting the field_val properly ?
var field_val = +v; // convert value to number from string
try this to convert the string value to numner
Yes it works I have using field_val = parseInt(v); Also your code is working Thanks....
2

You can use document.getElementById onblur I have created a JSFiddle

Comments

0
 function tournamentPrize(v){
    var myArray=[2, 4, 8, 16, 32, 64, 128];
    var field_val = v;
    if(myArray.indexOf(field_val)!=-1){ //alert(myArray.indexOf(field_val));
        if(field_val==2){
            $('#_1st_prize').removeAttr('disabled');                
            $('#_2nd_prize').attr('disabled','disabled');
            $('#_2nd_prize').val('');               
            $('#_3rd_prize').attr('disabled','disabled');
            $('#_3rd_prize').val('');
            $('#_4th_prize').attr('disabled','disabled');
            $('#_4th_prize').val('');               
            $('#rest_prize').attr('disabled','disabled');
            $('#rest_prize').val('');
        }else if(field_val==4){
            $('#_1st_prize').removeAttr('disabled');                
            $('#_2nd_prize').removeAttr('disabled');            
            $('#_3rd_prize').attr('disabled','disabled');
            $('#_3rd_prize').val('');
            $('#_4th_prize').attr('disabled','disabled');
            $('#_4th_prize').val('')
            $('#rest_prize').removeAttr('disabled');
        }else{
                       alert("You have entered "+field_val+" number");
        }
    }
    else{
        alert("You have entered wrong number"); 
    }
}

3 Comments

I have entered 8 it is Showing the alert message alert("You have entered wrong number");
it will give u the alert("You have entered wrong number"); becoz u are entering the position no in the array to be assesed and not the no. 8
:P How to match the array value with my field value?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.