[英]Incompatibility between GM_xmlhttpRequest and jQuery in Firefox but not with Chrome
[英]Jquery incompatibility issue with Chrome
我陷入了頭痛的境地。 當我選中選擇選項(05/30/2012 EQ)時,我無法單擊選擇按鈕來提交操作,但應該可以單擊它。 Chrome和IE會發生此問題,但FF會很好。 我認為這是一個Jquery不兼容問題。 我附加了一些代碼,如下所示:
function $recalcSelection($checkbox) {
$selectActionList.find("option").each(function() {
$optionLength = $table.find("td.actioncolumn input:checked").length;
if($optionLength <= 0) {
$(this).attr("disabled", true);
} else if($optionLength == 1) {
$(this).attr("disabled", false);
} else {
if(
$(this).val() == "editAppointment" ||
$(this).val() == "copyAppointment" ||
$(this).val() == "viewShowList" ||
$(this).val() == "viewScheduledTimes")
{
$(this).attr("disabled", true);
} else {
$(this).attr("disabled", false);
}
}
});
if($selectActionList.find("option:selected").attr('disabled')) {
$selectActionList.find("option:enabled").eq(0).attr("selected", true);
}
if($selectActionList.find("option:enabled").length <= 0) {
$selectActionButton.attr("disabled", true);
} else {
$selectActionButton.attr("disabled", false);
}
}
$ selectActionButton是提交按鈕,而$ selectactionlist是選擇列表。 我嘗試在Chrome中打印($ selectActionList.find(“ option:enabled”)。length,它是0。但是當我在FF中打印時,它是7。有人能幫我找出原因嗎?謝謝。謝謝
我附上了一些HTML表,如下所示:
<table id="appointmentTable">
<thead>
<tr class="headerrow">
<th class="actioncolumn"></th>
<th class="datecolumn">Date</th>
<th class="earliesttimecolumn">Start Time</th>
<th class="clientnamecolumn">Client</th>
<th class="locationcolumn">Location</th>
<th class="roomcolumn">Rooms</th>
<th class="typecolumn">Type</th>
<th class="filledtimescolumn">Filled Times</th>
</tr>
</thead>
<tbody>
<tr class=" hiddenrow" appointmentid="15166">
<td class="actioncolumn"><input type="checkbox" name="appointmentids[]" value="15166" /></td>
<td class="datecolumn"><span title="1338094800"></span><a href="?action=viewDailyUsers&date=05/27/2012&clients[]=8" title="View Appointments on 05/27/2012">05/27/2012</a></td>
<td class="earliesttimecolumn"></td>
<td class="clientnamecolumn">CPH</td>
<td class="locationcolumn">New Location</td>
<td class="roomcolumn"></td>
<td class="typecolumn">Screening</td>
<td class="filledtimescolumn">0/0</td>
</tr>
</tbody>
<tfoot>
<tr class="actionrow">
<td colspan="2" class="actioncolumn"></td>
<td colspan="6">With Selected:</td>
</tr>
<tr class="actionrow">
<td colspan="2" class="actioncolumn">
<input type="submit" name="button" value="Create New" />
</td>
<td colspan="6">
<select id="selectactionlist" name="selectaction">
<optgroup label="Adjustments">
<option value="editAppointment">Edit</option>
<option value="copyAppointment">Copy</option>
<option value="deleteAppointment">Delete</option>
</optgroup>
<optgroup label="Lists">
<option value="viewShowList">Show/No Show List</option>
<option value="viewScheduledTimes">Schedule List</option>
</optgroup>
<optgroup label="Hidden">
<option value="hideAppointment">Hide</option>
<option value="showAppointment">Show</option>
</optgroup>
</select>
<input id="selectactionbutton" type="submit" name="button" value="Select" />
</td>
</tr>
</tfoot>
代替執行以下操作:
if (foo) {
$(this).attr("disabled", true);
} else {
$(this).attr("disabled", false);
}
您應該添加和刪除disabled屬性,因為有時只有disabled屬性的存在才能使其禁用(可能是chrome保持禁用狀態的原因)。 嘗試以下方法:
if (foo) {
$(this).attr("disabled", true);
} else {
$(this).removeAttr("disabled");
}
編輯:嘗試此確切的代碼
function $recalcSelection($checkbox) {
$selectActionList.find("option").each(function() {
$optionLength = $table.find("td.actioncolumn input:checked").length;
if($optionLength <= 0) {
$(this).attr("disabled", true);
} else if($optionLength == 1) {
$(this).removeAttr("disabled");
} else {
if($(this).val() == "editAppointment" ||
$(this).val() == "copyAppointment" ||
$(this).val() == "viewShowList" ||
$(this).val() == "viewScheduledTimes")
{
$(this).attr("disabled", true);
} else {
$(this).removeAttr("disabled");
}
}
});
if($selectActionList.find("option:selected").attr('disabled') != "true") {
$selectActionList.find("option").filter(function () { return $(this).attr("disabled") != null}).eq(0).attr("selected", true);
}
if($selectActionList.find("option").filter(function () { return $(this).attr("disabled") != null}).length <= 0) {
$selectActionButton.attr("disabled", true);
} else {
$selectActionButton.removeAttr("disabled");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.