我已经做了一个验证,以避免使用以下代码为所有输入文本添加特殊字符,但是,我输入的文本需要特殊字符。我的代码如下
$('.twTextinput input, .twTextinput textarea').not( $( '#txtEmailPersonal input, #txtEmailTrabajo input' )).keyup(function (){
this.value = this.value.replace(/[^a-zA-Z0-9 _]/g,'');
});
问题在于,我有一个必须在选择器.not()内的输入文本。是一个输入文本,其ID为启动,其中包含" iccw"。我尝试使用此代码但不起作用
$('.twTextinput input, .twTextinput textarea').not( $( '#txtEmailPersonal input, #txtEmailTrabajo input, input[id^="iccw"]' )).keyup(function (){
this.value = this.value.replace(/[^a-zA-Z0-9 _]/g,'');
});
任何建议。
提前致谢。
答案 0 :(得分:0)
这是一个非常复杂的方式,单独输出一个特殊输入,你不觉得吗?
我倾向于想要找到所有“常规”textareas或输入到容器中并使用find来收集它们,然后单独输出其他“正常”输入。
$normal_input_list = $(container).find( 'input.normal, textarea.normal' );
$special_input_list = $( '#icww' );
onKeyupNormal = function (){
this.value = this.value.replace(/[^a-zA-Z0-9 _]/g,'');
};
// and now bind the handler
$normal_input_list.on( 'keyup', onKeyupNormal );
如果您有充分的理由选择,那么我确定以下内容应该有效:
$('input, textarea').not( '#wmd-input' );
指定输入和ID是多余的,因为ID在整个页面中已经是唯一的。
希望有所帮助!
答案 1 :(得分:0)
这是一个黑客:
$('.twTextinput input, .twTextinput textarea').not( $( '#txtEmailPersonal input, #txtEmailTrabajo input'
)).keyup(function (){
if( this.id != 'iccw' ) {
this.value = this.value.replace(/[^a-zA-Z0-9 _]/g,'');
}
});
答案 2 :(得分:0)
我倾向于使用HTML属性来控制它。我发现它更易于管理。
<textarea data-allowedchars="[^a-zA-Z0-9 _]"><textarea>
<textarea ></textarea>
<input data-allowedchars="[^a-zA-Z0-9 _]" />
<input />
JS
$("body").on("keyup", "[data-allowedchars]",
function(e){
var $t = $(this),
re = new RegExp($t.data("allowedchars"),'g');
$t.val($t.val().replace(re, ""));
}
);
很抱歉,这并不能直接回答您的问题。如果没有看到代码,很难看出你的语法有什么问题。