Contents:
解法:
https://api.jquery.com/trigger/
討論串:
https://stackoverflow.com/questions/4624670/using-jquery-to-trigger-html-onclick-event
The actual problem is with the interaction between jQuery’s .click()
and the inline onclick
code. jQuery’s .click()
actually does two things: it first triggers any event handlers, including the inline onclick
code, then it causes the checkbox to become checked.
The problem arises because the inline code tests whether the checkbox is checked. Because this is triggered first, the code finds that the checkbox isn’t checked, and doesn’t do anything. Now after this is finished, jQuery then goes and checks the checkbox.
How do we fix this? We check the checkbox manually first, then call the inline handler. Unfortunately, we can’t use jQuery’s .click()
to call the inline handler, because it will uncheck the checkbox again (it will also call other jQuery-bound event handlers if you add these in the future, you probably don’t want that). Therefore we use the native DOM method I described earlier, since its only effect is to run the inline code.
Final code is this:
$("#metadata_field_text_10190_default").attr("checked", true)[0].onclick();