Greasemonkey更改表单中单选按钮的值?

时间:2011-06-30 18:21:15

标签: javascript forms radio-button greasemonkey tampermonkey

我正在写一个Greasemonkey / Tampermonkey脚本,我需要打开单选按钮,具体取决于无线电控件的名称和值。

它的外观如下:

<input type="radio" name="11" value="XXX" class="radio">
<input type="radio" name="11" value="zzzz" class="radio">

所以我想设置那些名称为11且值为zzzz的按钮。

1 个答案:

答案 0 :(得分:2)

使用jQuery时,这非常简单。这是一个完整的脚本:

// ==UserScript==
// @name     _Radio button check
// @include  http://YOUR_SITE/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/
$("input[name='11'][value='zzzz']").prop ('checked', true);

input[name='11'][value='zzzz'] jQuery选择器获取具有初始<input>的所有zzzz,但前提是它们位于带{的单选按钮组中{1}}。

参考:


重要提示:上述内容适用于大多数网页,但在AJAX驱动的网页上,您经常需要使用支持AJAX的技术。这是因为Greasemonkey脚本将在加载您关心的复选框之前运行。

处理此问题的一种方法是使用the waitForKeyElements utility。像这样:

name="11"



当问题被问到时,

旧答案这是“最先进的”:):

// ==UserScript==
// @name     _Radio button check
// @include  http://YOUR_SITE/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/
waitForKeyElements ("input[name='11'][value='zzzz']", selectRadioButton, true);

function selectRadioButton (jNode) {
    jNode.prop ('checked', true);
}