我编写了一个功能,可以在控制台上显示所选的表单项,并在用户更改其选择时触发。
我在其中遇到错误,
options-general.php?page=my-unique-identifier:397 Uncaught TypeError: document.getElementById(...).value.trigger is not a function
这是我的代码,
function my_plugin_options() {
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
echo '<div class="wrap">';
echo ' <h3>Form:</h3>
<form>
Provide PDF Link:<br>
<input type="url" id="url" name="url" placeholder="http://">
<br><br>
Select Flipbook Theme:<br>
<input type="radio" id="theme" name="theme" value="bible" checked> Bible<br>
<input type="radio" id="theme" name="theme" value="magazine"> Magazine<br>
<input type="radio" id="theme" name="theme" value="magazine single"> Magazine Single<br><br>
<button type="button">Get Code</button><br>
</form>
<div id="code" style="background-color:green;">
</div>
<div id="preview">
<h3>Preview:</h3>
</div>
<script>
jQuery(document).ready(function($){
var url = document.getElementById("url").value.trigger("change");
var theme = document.getElementById("theme").value.trigger("change");
console.log(theme);
});
</script>
';
echo '</div>';
}
答案 0 :(得分:2)
你的问题在这里:
var url = document.getElementById("url").value.trigger("url");
当您访问HTMLInputElement
的媒体资源.value
时,您将拥有String
。 String
没有.trigger
属性,您可以将其作为函数调用。
以下是对正在发生的事情的澄清:
var element = document.getElementById("url"); // some DOM node
var val = element.value; // a string like "hello"
val.trigger("url"); // ERROR!
val.trigger; // undefined
// Essentially you're doing this:
undefined(); // ERROR!
看起来你正试图检测一个已更改的值并在发生这种情况时执行某些操作。尝试这样的事情(未经测试):
jQuery("#url").on("change", function() {
var newValue = this.value;
// do other things when value changes...
});