2017-08-15 54 views
0

所以我有一个页面上有两个相同的表单,我不能给出不同的名称,因为它们绑定到后端。在同一个输入字段的一页上的两种形式

我有几个在不同窗体上有相同ID的输入恶魔,如果它们是空的,用document.getElementById('id').value;

奇怪的是,在的形式,而另一半一个被检查的输入字段的一半从其他形式的检查,(这是当用户仅在的一种形式输入值)尽管他们使用2种不同的javascript功能。对于一个输入字段,它会自动获取最接近的ID,而其他字段则会一直到其他表单。

我的问题是我怎样才能得到最接近提交按钮(或其他表单附近的元素)的元素的值?

我尝试过使用jQuest closest()方法,但我似乎无法使用所有document.getElementById。

+3

告诉我们你的代码也请? – kukkuz

+0

您可以更改输入字段上的ID以使其唯一吗?这样你可以确保你是document.getElementById('someId')肯定返回正确的元素,你不必依赖jQuery方法。 – tommyO

+1

简单:更改后端。当你给两个相同的表单使用相同的ID时,显然你做错了什么。你应该使用唯一的ID(如在ID中应该是唯一的,总是)或者将id属性改为class。 ('change',function(){//你想做什么 - eg $(this).validate();}) ;' - 会自动将['change'listeners](https://api.jquery.com/change/)绑定​​到所有'

'元素并独立处理它们。 – Nukeface

回答

1

元素ID应始终是唯一的。你不应该有2个或更多的元素具有相同的ID。 document.getElementById('someId')期望返回1个元素,而不是元素数组 - 如果您想获取多个不需要复制ID的元素,还可以使用其他函数。

从W3Schools的:

的ID应该是一个页面内是唯一的。但是,如果存在多个具有指定ID的元素,getElementById()方法将返回源代码中的第一个元素。

More about HTML DOM getElementById() Method

相关问题