[英]document.getElementById() problem
我有这行代码:
<a href="#" id="profilelink" name="profilelink"
value="<?php echo $id."/".$block_record;?>"
onClick="return viewornot(<?php echo $id; ?>)">
<?php echo $uniqueCode; ?>
</a>
因此,使用onclick时,我想将与被阻止的ID串联在一起的ID传递给我的JS:
function viewornot()
{
var val = document.getElementById('profilelink');
var e = confirm('Do you want to view this profile?');
if (e == true)
{
//for live site
window.location.href = "http://www.rainbowcode.net/index.php/profiles/showprofilepersonal?id="+id;
return true;
}
else
{
//if val contains a 1 then user is blocked
//display a message then
}
return false
}
该行: var val = document.getElementById('profilelink');
没有给我我想要的内容,它应该包含与1(已阻止)或0(未阻止) ($id."/".$blocked_user)
连接的用户ID
有人能帮助我吗? 谢谢
document.getElementById('profilelink')
返回对DOM的引用,而不是您指定的value属性( 这是无效的HTML )。
将其更改为
( 在兼容的浏览器中可能会失败,因为value不是标记的有效属性 ) document.getElementById('profilelink').value
要么
document.getElementById('profilelink').getAttribute('value');
演示在 http://jsfiddle.net/gaby/EWdLD/
另外 ,您很可能希望将viewornot()
定义更改为viewornot(id)
因为您似乎将其作为参数传递,并在方法内部使用它。
在安全方面 ,我希望您不要将其用于真正的安全,因为通过在客户端中操作DOM可以轻松绕过它。 为了获得更强大的安全性,请使用一些服务器端代码对每个请求进行阻止/取消阻止。
没有指出明显的地方,但是val
不是实际值。 您需要document.getElementById('profilelink').value
来做到这一点。
当你做
var val = document.getElementById('profilelink');
您实际上正在使用作为链接的DOM元素。 您真正想要的是传递给您的方法的参数。
更改您的方法签名
function viewornot(blockedStatus) {
var val = blockedStatus;
//your code
}
您可能还想更改链接
<a href="#" id="profilelink" name="profilelink"
value="<?php echo $id."/".$block_record;?>"
--> onClick="return viewornot('<?php echo $id."/".$block_record;?>')">
<?php echo $uniqueCode; ?>
</a>
a
标签没有value属性。 您需要将此值传递给函数。
<a href="#" id="profilelink" name="profilelink" onClick="return viewornot(<?php echo $block_record; ?>)"><?php echo $uniqueCode; ?></a>
在<a>
标记中没有可用的"value"
属性,您可以将其作为参数传递,并将另一个参数作为传递
例如:
<a onclick="view(<?php echo id ?>)</a>
<script>
function view(id){
alert(id);
}
</script>
试试这个
如果要循环链接创建脚本,则每个链接将具有一个profilelink
的ID。 您可以通过将数据库ID添加到锚标记中ID的末尾来解决此问题。 最好将所有内容都传递给该函数,而不用担心为锚定变量。
Ahref不能有值。 只需通过onclick函数传递“ val”即可。 “ val”将通过函数传递,然后您不需要getElementById
<a href="#" id="profilelink" name="profilelink" onClick="viewornot(<?php echo $id; ?>)"><?php echo $uniqueCode; ?></a>
。
function viewornot(val)
{
var e = confirm('Do you want to view this profile?');
if (e == true)
{
//for live site
window.location.href = "http://www.rainbowcode.net/index.php/profiles/showprofilepersonal?id="+id;
return true;
}
else
{
//if val contains a 1 then user is blocked
//display a message then
}
return false
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.