当单元格为空或值为零时,如何禁用单击表格单元格。 我有一张表,当我点击特定单元格时,会执行某些操作。但我希望当表具有单元格值0或空单元格
时,单击事件不起作用$('#tablename').off('click','td').on('click', 'td', function(e) {
var column = e.delegateTarget.tHead.rows[0].cells[this.cellIndex];
var row = this.parentNode.cells[1];
if ($(row).text().trim() == "")
{
row = this.parentNode.cells[0];
}
var rowvalue = $(row).text();
var columnvalue = $(column).text();
}
答案 0 :(得分:1)
$('td').click(function(){
var v = $(this).html();
if( $.trim(v) != '0' && v != '' ){
// your code
}
});
希望这会对你有所帮助。
答案 1 :(得分:0)
尝试使用零或空字符串值映射所有dom元素,然后禁用其默认点击功能:
var duds = $('td').map(function () {
if ($(this).html() == 0 || $(this).html() == "") {
return $(this);
}
});
duds.onclick(function (event) {
event.preventDefault();
});
答案 2 :(得分:0)
这是一个例子,根据你的代码修改它:
<强> HTML:强>
<table>
<tr>
<td>Content <input type="text" class="hidden"></td>
<td>Content <input type="text" class="hidden"></td>
</tr>
<tr>
<td>Content <input type="text" class="hidden"></td>
<td>Content <input type="text" class="hidden"></td>
</tr>
</table>
<强> CSS:强>
.visible {
display: block;
}
.hidden {
display: none;
}
<强> JS:强>
var tds = $('td');
tds.click(function(){
var thisTable = $(this).html();
if( thisTable == '0' || thisTable == '' ){
var allInputs = tds.find('input');
allInputs.removeClass('visible');
allInputs.addClass('hidden');
}
});
答案 3 :(得分:-1)
我不愿意给你整个解决方案但只是一个提示。您应该使用以下代码行
class VacationEntryAdmin extends Admin {
// some
// content
public function prePersist($cv)
{
// some
// content
$validator = $this->getValidator();
$errors = $validator->validate($employeeVacationEntry);
if (count($errors) > 0) {
foreach ($errors as $error) {
$errorsString = $error->getMessage();
$employeeName = $error->getRoot()->getEmployee()->getName();
$this->getRequest()->getSession()->getFlashBag()->add("danger", $employeeName . ': ' . $errorsString);
} //I'd like to stop the persistence of all the Vacation Entry here.
}
$em->persist($employeeVacationEntry);
}
}
这是内联事件处理 - 您始终可以使用jquery来避免内联事件处理 - 这对您来说也是一个很好的功课。
答案 4 :(得分:-1)