Манипулировать полем ввода

Можно ли удалить входные данные, но показать значение с помощью Greasemonkey? Или отключить это? Например:

<input name="prio" type="text" value="285" disabled="disabled">

Я понятия не имею, как написать пользовательский скрипт.:(

Это для ПК в моей компании, и я не могу работать с jQuery или редактировать исходный код.

Сначала взгляните на лучшее понимание:

Код выглядит так: http://jsfiddle.net/gv3XF/

Но я хочу вот так: http://jsfiddle.net/gv3XF/1/

Я попробовал это со Стилом, но с этим я могу только скрыть ввод. Мне все еще нужно значение для результата.

Вход всегда называется name="prio" но число от значения меняется.

То, что я хочу, это "убить" ввод, но показать результат значения.

1 ответ

Решение

Вы не можете просто "убить" ввод. В противном случае необходимые данные могут не отправляться на сервер при отправке формы.

Таким образом, скрыть ввод и показать его значение. Вот полный сценарий, который использует удивительную силу jQuery для этого:

// ==UserScript==
// @name        Make Priority more user friendly
// @include     http://YOUR_SERVER.COM/YOUR_PATH/*
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant       GM_getValue
// ==/UserScript==
//--- The @grant is to subvert a huge design flaw, introduced with GM version 1.

var oldInput    = $("input[name=prio]");
var priorityVal = oldInput.val ();
oldInput.after ('<b id="gmPriorityValue">' + priorityVal + '</b>');
oldInput.remove ();

$("#gmPriorityValue").before ('<input type="hidden" name="prio">');
$("input[name=prio]").val (priorityVal);

Изменить @include значение в соответствии с вашим сайтом (ами).

Обратите внимание, что вы не можете изменить <input>s типа, поэтому мы удаляем старый ввод и создаем новый с тем же значением, но скрытым.



Re: do that without jquery? the pc has no internet connection:

Ты собираешься пропустить файл сценария на ПК, верно?:)
Скачайте и вставьте на него jQuery. С файлом jQuery и файлом usercript в одной папке, измените @require линия к:

// @require     jquery.min.js

Тогда скрипт установится просто отлично, без подключения к интернету.



Re: maybe the easiest way is to disable the input field:

Хорошо, скрипт для этого:

// ==UserScript==
// @name        Make Priority more user friendly
// @include     http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant       GM_getValue
// ==/UserScript==

var oldInput = document.querySelector ("input[name=prio]");
oldInput.setAttribute ("disabled", "disabled");

Обновить:

Чрезвычайно важная информация была исключена из вопроса - главным образом, это предназначено для Firefox 2.0(!!!) и Greasemonkey 0.8. Учитывая это, измените код для последнего скрипта на:

var oldInput = document.getElementsByName ("prio");
oldInput[0].setAttribute ("disabled", "disabled");

Это должно работать, но это невозможно проверить, и таблицы совместимости даже не охватывают такой устаревший браузер.

Другие вопросы по тегам