我有以下代码:
$("input[id^='Order_'], input[id^='Default_']").change(function (e) {
var type = $(this).attr('id').split('_')[0];
updateField('Menu', $(this), type);
});
在updateField函数中有一种方法可以确定传递的obj是“text”还是“checkbox”类型?
function updateField(entity, obj, type) {
var val = obj.val();
var val = obj.is(":checked")
答案 0 :(得分:3)
您可以检查字段的“类型”属性:
obj.attr('type');
答案 1 :(得分:3)
尝试:
var value;
if (obj.attr('type') === 'text') {
value = obj.val();
} else if (obj.attr('type') === 'checkbox') {
value = !!obj.attr('checked');
}
答案 2 :(得分:2)
您可以使用:text
和:checkbox
类型选择器:
obj.is(":checkbox") // returns true if element is of type checkbox
obj.is(":text") // returns true if element is of type text
See here适用于所有jQuery选择器。
更新以下评论
假设obj
始终属于text
或checkbox
类型:
var val = obj.is(":text") ? obj.val() : obj.is(":checked");
答案 3 :(得分:2)
使用.attr()
获取type属性并使用if statement
确定它的类型。
e.g。
var type = obj.attr('type');
if (type == "checkbox") {
// It's a checkbox
} else if (type == "text") {
//It's text
}
答案 4 :(得分:2)
var typeAttr = obj.attr("type");
答案 5 :(得分:2)
我经常做的是:
var nodeType...
nodeType = $(this).attr("type") || $(this).nodeName.toLowerCase();
所以它适用于每种输入类型。
对于文本框,它将包含:
textarea
,对于一个复选框,它将包含
checkbox
等。 一个完整的例子:
function inputType = function( $input ){
if( !$input.length ) {
return false;
}
return $input.attr("type") || $input.nodeName.toLowerCase();
}
inputType( $("input[type=text]") ) //returns text
inputType( $("textarea") ) //returns textarea
答案 6 :(得分:1)
function updateField(entity, obj, type) {
var val = obj.val();
var whatAmI = obj.attr('type'); // <====
if (whatAmI == 'text')
{
}
else
{
}
var val = obj.is(":checked")
答案 7 :(得分:0)
试试这个
var val = obj.attr("type") == 'text'
? obj.val() //Value of text box
: obj.attr("type") == 'checkbox'; //if it's a check box or not