2010-02-08 5 views
2

C'est le jQuery, les deux game_id et $ (ce) .val() sont des entiersjQuery + Coldfusion, isNumeric ne valide pas

/* AJAX call: save to DB input name=#game_id# value=#game_rating */ 
    $.post("game_rating_submit.cfm", { 
     id: game_id, 
     rating: $(this).val() 
    }, 
    function(data) { 
     alert('data: ' + data); 
    }); 

Ceci est la partie coldfusion qui est défaillant:

<cfif NOT IsNumeric("form.rating")> 
    <cfset variables.error = 'Invalid rating value #form.rating#.' > 
</cfif> 
<cfoutput>#variables.error#</cfoutput> 

Pour une raison quelconque, form.rating n'est pas numérique?

Répondre

6

Lorsque vous citez "form.rating" est la chaîne "form.rating", si vous voulez la valeur essayez ...

<cfif NOT IsNumeric(form.rating)> 
    <cfset variables.error = 'Invalid rating value #form.rating#.' > 
</cfif> 
<cfoutput>#variables.error#</cfoutput> 
1

Je pense que rating: $ (this) .val() fait référence à un mauvais élément DOM. Tirez cette référence en dehors de la méthode .post, comme ça.

var rating = $('#my_rating_elem').val(); 
$.post('game_rating_submit.cfm', { id: game_id, rating: rating}) ... 

ou assurez-vous que $ (ce) fait référence à l'objet que vous attendez en attribuant à une autre variable locale

var Klass = $ (this); $ .post ('game_rating_submit.cfm', {id: game_id, note: klass.val()}) ...

Ceci est nécessaire car dans le contexte de la méthode .post() le $ (this) ne fait PAS référence à l'objet que vous attendiez (qui est le $ (this) en dehors du .post())

+0

Ah, merci, c'est vrai – davidosomething

Questions connexes