gpt4 book ai didi

Javascript $.inArray 不工作

转载 作者:行者123 更新时间:2023-11-30 18:17:22 24 4
gpt4 key购买 nike

我有一个现有表,我想防止将相同的数据添加到现有表中。
我的问题:为什么当我点击“创建新用户”按钮时,结果总是提示“未找到”?

代码如下:HTML:

<div id="users-contain" class="ui-widget">
<h1>Existing Users:</h1>
<table id="users" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header ">
<th>Name</th>
<th>Email</th>
<th>Password</th>
</tr>
</thead>
<tbody>
<tr>
<td>guruh</td>
<td>guruhkharisma1@yahoo.com</td>
<td>123456</td>
</tr>
<tr>
<td>edo</td>
<td>edo@yahoo.com</td>
<td>123456</td>
</tr>
</tbody>
</table>
</div>
<button id="create-user">Create new user</button>

jQuery

    $(function() {
var name = $( "#name" ),
email = $( "#email" ),
password = $( "#password" ),
allFields = $( [] ).add( name ).add( email ).add( password ),
tips = $( ".validateTips" );

function checkExisting2(o) {
var arr = [];
$('#users-contain tr').each(function() {

if (!this.rowIndex) return;
var Id = $(this).find("td").eq(0).html();

arr.push(Id);
});

if ( $.inArray(o,arr) > -1) {
return false;
} else {
return true;
}
}

$( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Create an account": function() {
var bValid = true;

bValid = bValid && checkExisting2(name);

if ( bValid ) {
alert("not found");
$( "#users tbody" ).append( "<tr>" +
"<td>" + name.val() + "</td>" +
"<td>" + email.val() + "</td>" +
"<td>" + password.val() + "</td>" +
"</tr>" );
$( this ).dialog( "close" );
} else {
alert("found");
}
},
Cancel: function() {
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
}
});

$( "#create-user" )
.button()
.click(function() {
$( "#dialog-form" ).dialog( "open" );
});
});

最佳答案

当你写这行时:

bValid = bValid && checkExisting2(name);

代码中没有任何内容表明 name 指向任何有用的东西,因为

var name = $("#name")

指向一个空对象。

另外,当你这样写的时候:

if (!this.rowIndex) return;

它会工作,但它被认为是错误的形式;试试这个:

if (!this.rowIndex) { 
return;
}

这样一来,其他人阅读代码时就不会产生混淆。此外,所有这些都是多余的:

var bValid = true;
bValid = bValid && checkExisting2(name);
if ( bValid ) { .... }

相当于:

if (checkExisting2(name)) { ... }

关于Javascript $.inArray 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com