识别没有ID或类的隐藏表单值

时间:2013-04-12 15:37:44

标签: javascript jquery forms input greasemonkey

我正在编写一个Greasemonkey脚本,我需要能够从隐藏的表单元素中获取值并将其设置为变量。

隐藏的表单值如下所示:

 <input type="hidden" name="ASIN" value="B009MO89Y4" />

我没有ID,类或任何我可以看到的将“值”设置为变量的方法。这需要动态工作,我目前无法为此值建立类或ID。

是否有Javascript(或jQuery)方法来设置它?

换句话说:

找到名为“ASIN”的“input”并将.val()设置为变量?

8 个答案:

答案 0 :(得分:1)

此选择器和作业:

$("input[name='ASIN']").val(); <---- returns value of that input

var inputVal = $("input[name='ASIN']").val(); <-- Assigns it

var temp = "Stuff";
$("input[name='ASIN']").val(temp); <----Assigns the value of the temp var.

答案 1 :(得分:1)

您可以通过选择它。在 jQuery 中命名如下:

var bar = "Example"; // Example text, to be used in val().
var x = $('input[name="ASIN"]').val(bar);  
// Sets the variable x to be the value bar for the input with the name ASIN.

这是一个有效的jQuery jsFiddle


纯粹的 Javascript *

var bar = "Example";  
document.getElementsByName("ASIN")[0].value = bar;

这是一个有效的Javascript jsFiddle


* 请注意,虽然Firefox,Chrome和Safari都支持document.getElementsByName,但IE和Opera中的limited browser support.已经支持。

答案 2 :(得分:1)

您可以使用jQuery attribute equals selector

$('input[name="ASIN"]').val(foo);

答案 3 :(得分:0)

像这样:

 $('input[name="ASIN"]').val();

VAR:

var hiddenAsin = $('input[name="ASIN"]').val();

答案 4 :(得分:0)

您可以使用任何属性过滤您的选择。

$('input[name=ASIN]').val("New Value")

答案 5 :(得分:0)

您可以使用针对隐藏类型输入的选择器。看起来应该是这样的:

$('input[type=hidden]');

或更简单:

$(':hidden');

答案 6 :(得分:0)

纯粹的javascript:

尝试document.getElementsByName('name')
请注意,cmptrgeekken指出它有limited browser-support(虽然这不会是FF中的greasemonkey的问题)。

作为替代方案,如果该隐藏元素具有固定位置,您还可以通过索引编号在knownParent.getElementsByTagName('tag')[#]得到的可预测集合中访问它(因此表单中第一个隐藏的输入标签将为0 )。

另一个变体是获取(再次)knownParent.getElementsByTagName('tag')并循环遍历该集合,以查看哪个元素具有您寻找的“名称”属性集。 只需:

var target=knownParent.getElementsByTagName('input'), L=target.length;
           while(L--){ if(target[L].name==='name'){target=target[L]; break;} }
alert(target.value); //target is now the element you seek.

示例小提琴here

祝你好运!

答案 7 :(得分:0)

使用此方法

var inputs = document.getElementsByTagName('input');
for(var i = 0...)
{
    //go through each input and look for the name "ANSI" and the type is hidden.

     //and do your changes. 
}

这是为了记住javascript。

有了这个,你应该能够获得那个特定的隐藏形式,没有ID,也没有分配给那个特定形式的类。