Манипулировать полем ввода
Можно ли удалить входные данные, но показать значение с помощью 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");
Это должно работать, но это невозможно проверить, и таблицы совместимости даже не охватывают такой устаревший браузер.