Auf keypress-Ereignis, wie kann ich das ändern ',' ein '~'
Ich haben, um zu verhindern, dass Coldfusion Standard-Liste Trennzeichen ',' von der Eingabe in ein Formular-input-array. Ich bin neu in der Verwendung von javascript zur Validierung, und haben nie versucht zu wechseln, die Werte, die jemand eingeben. Wie kann ich Haken ein Komma, und ersetzen Sie es mit einem tilda?
Javascript, die ich bisher ausprobiert habe:
$(document).ready(function(event){
var regExComma = /,/;
$("[name='name[]']").live("keypress",function(event){
//i know i could check the numerical value, i feel this requirement can get more added to it and I would like to just change the regEx accordingly.
if(regExComma.test(String.fromCharCode(event.which)){
//it was a ',' switch it to '~'
event.which = 126;
}
});
//added to show that the 'name' input form array is the only input that cares about the ','
var regExDig = /[\d]/
$("[name=min[]],[name=max[]]").live(keypress, function(event){
if(!regExDig .test(String.fromCharCode(event.which)){
event.preventDefault();
$("#cfocFormMessages").trigger("updateMessages", {"url":"components.cfc/CFOC.cfc", "data":{"more":"stuff"}});
}
});
});
cfml /html eingebunden:
<form action="components/CatagoryService.cfc?method=saveVersion">
<input id="version" name="version" type="text">
<!--- .. more inputs ..--->
<table id="table">
<thead><tr><th>name col</th>
<th>min col</th>
<th>max col</th>
<th>edit</th>
</tr></thead>
<tfoot></tfoot>
<cfoutput query="variables.query">
<tr><td><input name="name[]" type="text" value="#variables.query.name#"></td>
<td><input name="min[]" type="text" value="#variables.query.min#"></td>
<td><input name="max[]" type="text" value="#variables.query.max#"></td>
<td><input name="id[]" type="hidden" value="#variables.query.id#">
<a href="#" class="editLink">edit</a></td>
</tr>
</cfoutput>
<tr><td></td><td></td><td><a href="#" class="addLink">add</a></td></td></tr>
</table>
<input type="Submit"/>
</form>
wenn ich alter CatagoryService.cfc?Methode=saveVersion zu <cfreturn arguments>
in einen JSON-string, eine typische Reaktion von Coldfusion aussieht:
{VERSION:"",name:"name1,name2",min:"1,3", max:"2,4",id:"1,2"}
- Was wird passieren, wenn ein Benutzer überschreibt Ihre Scheck-und setzt ein Komma? Wird, dass das ein Sicherheitsproblem sein? Wenn dem so ist, müssen Sie auf dem server sowie auf dem client.
- Ich bin der überprüfung auf dem server zu. nämlich die " name:"name1", "name2" coldfusion-Liste wird länger sein, als die 'min' und 'max' - Listen. Ich werde das hinzufügen von code zu zeigen, der anderen die Validierung geht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legte ich Ihre HTML-Code auf jsfiddle (Sie können es testen) und Hinzugefügt, das JavaScript, mit einem Selektor, der alle Spiele und Elemente:
Alle Kommas in der Zeichenfolge ersetzt werden durch eine tilde, wenn ein Komma (code 188) eingegeben wurde.
Denken Sie daran, dass die JavaScript-Validierung ist nichts, was Sie wollen, zu verlassen. Die Kommas können problemlos an den server gesendet oder nie ersetzt zu bekommen, z.B. in einem user-agent mit JavaScript deaktiviert.
Ersetzte ich die Namen[] .live()
event.which = 126;
zuevent.originalEvent.keyCode=126;
wolfram ich steigerte Ihren keyUp-Lösung.
Imho, es gibt keine Notwendigkeit, überprüfen Sie diese Tasten:
Überprüfen Sie es auf jsFiddle.