Один из способов - захватить все данные, кроме доллара, и сохранить его в скрытом поле:
$("form").submit(function() {
var total = $("#total").val();
$("#hidden").val(total.replace("$", ""));
});
Вот полное рабочее решение (имейте в виду, что оно, вероятно, нуждается в доработке, прежде чем встретится с реальным миром):
$("form").submit(function() {
var total = $(".total").val();
$("#hidden").val(total.replace("$", ""));
});
$("#total").keypress(function() {
validateNumeric();
}).keyup(function() {
// if the user has pressed backspace and removed the dollar, put it back
if($(this).val() == null || $(this).val() == "") {
$(this).val("$");
}
});
function validateNumeric(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
if(key == 8) {
return true;
}
key = String.fromCharCode( key );
var regex = /[0-9]/;
if( !regex.test(key) ) {
theEvent.returnValue = false;
theEvent.preventDefault();
}
}
Тестовая разметка:
<form>
<input type="text" id="total" value="$"/>
<input type="hidden" id="hidden"/>
<input type="submit" value="Submit"/>
</form>