2013-08-29 4 views
2

Как отключить href на основе данных? Ниже приведена таблица, в которой будут отображаться данные. Когда щелкнет Clik Here, данные будут отправлены в базу данных.Отключить href HTML с помощью javascript

<table> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>Age</th> 
     <th>Address</th> 
     <th>Button</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>Mr.XX</td> 
     <td>20</td> 
     <td>Street XX</td> 
     <td><a name=sendName id=sendId href="#" >Clik Here</a></td> 
    </tr> 
    </tbody> 
</table> 

Однако, когда age клетка не равна 20, то href для Click Here должны быть отключены, так что пользователь не может отправить эти данные в базу данных.

+0

Можете ли вы добавить больше информации (F.E. в jsFiddle). Является ли таблица из php, asp или что-то еще? в таблице всегда есть только одна запись? как изменится возраст? – Martin

ответ

2

Я думаю, что вы можете сделать что-то вроде: jsFiddle

HTML:

<table> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Age</th> 
      <th>Address</th> 
      <th>Button</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>Mr.XX</td> 
      <td> 
       <input id="ageInput" type="text" value="20" /> 
      </td> 
      <td>Street XX</td> 
      <td><a name="sendName" id="sendId" href="#">Clik Here</a> 
      </td> 
     </tr> 
    </tbody> 
</table> 

JS:

$(document).ready(function() { 
    $('#ageInput').keyup(function (e) { 
     var age = $(this).val(); 
     if (age != 20) { 
      // anything what should happend if its not 20 f.e.: 
      $('#sendId').hide(); 
     } else { 
      // anything what should happend if it is 20 f.e.: 
      $('#sendId').show(); 
     } 
    }); 
}); 
+0

Если вы считаете, что вам нужно ** downvote **, было бы хорошо ** оставить комментарий **. – Martin

+0

I У меня нет идеи, почему люди занижают этот ответ. Это почти то, что я хочу. Спасибо за помощь :) – art

+0

Нет проблем. Вы просили получить ответ, который вам нужен, - все, что я хотел;) – Martin

0

В обработчике кликов по ссылке вы можете получить значение возраста, выполнить тест и просто вернуть false из обработчика, если вы не хотите, чтобы он что-либо делал (т.е.! == 20), иначе верните true, чтобы сохранить данные ...

0

Try может быть это: -

function disableLink() 
    { 
    if(document.getElementById(".age").innerHTML != 20) 
    { 
    document.getElementById('YourLink').disabled=true; 
    document.getElementById('YourLink').removeAttribute('href');  
    document.getElementById('YourLink').style.textDecoration = 'none'; 
    document.getElementById('YourLink').style.cursor = 'default'; 
    } 
    } 
+0

Почему нисходящий ?????? –

+0

Не спустил вниз, но, вообще говоря, использование встроенного JS - ужасная практика. – PeeHaa

+0

@PeeHaa: - Хорошо, ваша точка. !!! Обновленный мой ответ с другим вариантом !!! Кажется, это хорошо? :) –

1

добавить onclick="return false;"

<a name=sendName id=sendId href="#" onclick="return false;" >Clik Here</a>

0

если формат данных я s будет последовательным, вы должны добавить атрибут id к ячейке таблицы, которая будет отображать данные. таким образом, Javascript может получить к нему доступ с помощью метода .getElementById()

+0

да. Это то, что на самом деле я делаю, но я не хочу показать код здесь, потому что он слишком длинный. Так что я просто прост и легко объясню :) – art

-1

Сделать это изменить HREF для javascript: void(0) если значение не 20

JSFIDDLE ЗДЕСЬ: http://jsfiddle.net/NBuxW/

Использование JQuery:

if($(".age").text() != 20) { 
    $('.my-link').attr("href", "javascript: void(0)"); 
} 

Использование Javascript:

if(document.getElementById(".age").innerHTML != 20) { 
    document.getElementById(".age").href = "javascript: void(0)" 
} 
+0

В чем причина отрицательного голоса второй, которую я опубликовал? –

+1

Ненавижу это, когда люди сбрасывают действительный ответ без причины без объяснения причин, к счастью, кто-то, кто его поддержал, 0 :( –

0

Почему вы не используете JQuery?

$("#sendId").on("click", function(){ 
    if ($("#age").text() != 20) { 
     return false; 
    } 
}); 

JsFiddle

0

Вы можете попробовать HTML5 проверки:

<form> 
    Mr.XX 
    <input id="ageInput" type="number" value="20" min="20" max="20" /> 
    Street XX 
    <input type="submit" name="sendName" id="sendId" value="Clik Here" /> 
</form> 

Если возраст не является числом, или, если это меньше, чем 20, или больше, чем 20, форма не будет действительным и браузер не будет Отправь это.

Demo