【事象】
■【PHP】phpQueryでcheckboxのcheckedが消えない
<input type=”checkbox” name=”test1″ value=”テスト1″ checked>
を消そうと
$doc[‘[name=”test1″]’]->attr(“checked”,false)
としたのだが消えない
逆にcheckedが無い場合でもcheckedが付いてしまうというバグ?
(jqueryと挙動が違うから仕様じゃないよね?)
【解決策】
■phpQuery.phpの書き換え
public function attrの
@$node->setAttribute($a, $value);
を
if($value===false){
@$node->removeAttribute($a);
}else{
@$node->setAttribute($a, $value);
}
に変更
【原因】
DOMElement::setAttribute(“checked”,false);
では消えないって事っぽい
checkedを消すには
DOMElement::removeAttribute(“checked”);
にする必要がある
こういうミスって事は、
まだまだ同じようなバグありそうですな。
RELATED
-
2023年12月13日
-
2023年8月24日
-
2023年8月1日
-
2021年8月25日
コメントを残す