我有这行代码:
<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
($id."/".$blocked_user)
答案 0 :(得分:4)
document.getElementById('profilelink')
返回对DOM的引用,而不是您指定的值属性(是无效的HTML )。
将其更改为 (在兼容的浏览器中可能会失败,因为值不是标记的有效属性)document.getElementById('profilelink').value
或
document.getElementById('profilelink').getAttribute('value');
演示 http://jsfiddle.net/gaby/EWdLD/
另外,您很可能希望将viewornot()
定义更改为viewornot(id)
,因为您似乎将其作为参数传递,并在您的方法中使用它。
安全明智,我希望您不要将其用于真正的安全性,因为它可以通过操纵客户端中的DOM轻松绕过。为了获得更强大的安全性,请使用一些服务器端代码来阻止/取消阻止每个请求。
答案 1 :(得分:2)
不要指出明显的,但val
不是实际值。您需要document.getElementById('profilelink').value
来执行此操作。
答案 2 :(得分:1)
当你这样做时
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>
答案 3 :(得分:0)
a
标记没有值属性。您需要将此值传递给函数。
<a href="#" id="profilelink" name="profilelink" onClick="return viewornot(<?php echo $block_record; ?>)"><?php echo $uniqueCode; ?></a>
答案 4 :(得分:0)
在<a>
标记中没有"value"
属性可用,您可以将其作为参数传递给另一个参数作为传递
例如:
<a onclick="view(<?php echo id ?>)</a>
<script>
function view(id){
alert(id);
}
</script>
试试这种方式
答案 5 :(得分:0)
如果要循环链接创建脚本,则每个链接的ID都为profilelink
。您可以通过将数据库ID添加到锚标记中的id末尾来解决此问题。最好通过函数传递所有内容,而不必担心创建锚的变量。
答案 6 :(得分:0)
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
}